int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { // Detection of closed on read currently not working certain platforms. #if defined (sun) || defined (AIX) || defined (__FreeBSD_version) return 2; #endif try { // Initialize orb CORBA::ORB_var orb = CORBA::ORB_init( argc, argv ); if (parse_args (argc, argv) != 0) return 1; // Destringify ior CORBA::Object_var obj = orb->string_to_object( ior ); if (CORBA::is_nil(obj.in())) { std::cerr << "Nil Messenger reference" << std::endl; return 1; } // Narrow Messenger_var messenger = Messenger::_narrow( obj.in() ); if (CORBA::is_nil(messenger.in())) { std::cerr << "Argument is not a Messenger reference" << std::endl; return 1; } CORBA::String_var message = CORBA::string_dup( "Hello!" ); messenger->send_message( "TAO User", "Test 1", message.inout() ); // Force server to abort to verify it will be brought // back up when send_message() is called. messenger->abort(2); ACE_OS::sleep(seconds_between_requests); ACE_DEBUG ((LM_INFO, "(%P|%t) - Sending another message after abort of server\n")); messenger->send_message( "TAO User", "Test 2", message.inout() ); std::cout << "messages were sent" << std::endl; } catch(const CORBA::Exception& ex) { std::cerr << "Client main() Caught CORBA::Exception: " << ex << std::endl; return 1; } return 0; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { // Detection of closed on read currently not working certain platforms. #if defined (sun) || defined (AIX) || defined (__FreeBSD_version) return 2; #endif try { // Initialize orb CORBA::ORB_var orb = CORBA::ORB_init( argc, argv ); if (parse_args (argc, argv) != 0) return 1; // Destringify ior CORBA::Object_var obj = orb->string_to_object( ior ); if (CORBA::is_nil(obj.in())) { std::cerr << "Nil Messenger reference" << std::endl; return 1; } // Narrow Messenger_var messenger = Messenger::_narrow( obj.in() ); if (CORBA::is_nil(messenger.in())) { std::cerr << "Argument is not a Messenger reference" << std::endl; return 1; } CORBA::String_var message = CORBA::string_dup( "Hello!" ); int try_count = 0; int succeeded = 0; for (; try_count < number_of_tries; ++try_count) { ACE_DEBUG ((LM_INFO, "(%P|%t) - Sending message <%d> to server\n", try_count)); try { messenger->send_message( "TAO User", "Test 1", message.inout() ); ACE_DEBUG ((LM_INFO, "(%P|%t) - Successfully received response for message <%d> to server\n", try_count)); ++succeeded; // Force server to abort to verify it will be brought // back up when send_message() is called. messenger->abort(2); ACE_OS::sleep(seconds_between_requests); } catch (const CORBA::Exception&) { // Swallow } } if (succeeded == number_of_succeed) { ACE_DEBUG ((LM_INFO, "(%P|%t) - <%d> Messages where send to the server, <%d> succeeded\n", try_count, succeeded)); } else { ACE_ERROR ((LM_INFO, "(%P|%t) - ERROR: <%d> Messages where send to the server, <%d> succeeded, should be <%d>\n", try_count, succeeded, number_of_succeed)); } orb->destroy (); } catch(const CORBA::Exception& ex) { std::cerr << "Client main() Caught CORBA::Exception: " << ex << std::endl; return 1; } return 0; }