int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { try { { PortableInterceptor::ORBInitializer_var initializer ( new Client_ORBInitializer); PortableInterceptor::register_orb_initializer (initializer.in()); } CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); if (parse_args (argc, argv) != 0) return 1; CORBA::Object_var poa_object = orb->resolve_initial_references ("RootPOA"); PortableServer::POA_var root_poa = PortableServer::POA::_narrow (poa_object.in ()); if (CORBA::is_nil (root_poa.in ())) ACE_ERROR_RETURN ((LM_ERROR, " (%P|%t) Panic: nil RootPOA\n"), 1); PortableServer::POAManager_var poa_manager = root_poa->the_POAManager (); CORBA::Object_var tmp = orb->string_to_object (ior); Test::Echo_var echo = Test::Echo::_narrow (tmp.in ()); poa_manager->activate (); if (CORBA::is_nil (echo.in ())) { ACE_ERROR_RETURN ((LM_DEBUG, "Nil Test::Echo reference <%s>\n", ior), 1); } test_synchronous (echo.in ()); test_ami (orb.in (), echo.in ()); echo->shutdown (); orb->destroy (); unsigned long request_count = Echo_Client_Request_Interceptor::request_count; unsigned long response_count = Echo_Client_Request_Interceptor::reply_count + Echo_Client_Request_Interceptor::other_count + Echo_Client_Request_Interceptor::exception_count; if (request_count != response_count) { ACE_ERROR ((LM_ERROR, "ERROR: Mismatched count of requests and responses " " (request = %d, response = %d)\n", request_count, response_count)); } if (request_count == 0) { ACE_ERROR ((LM_ERROR, "ERROR: No requests handled ")); } if (response_count == 0) { ACE_ERROR ((LM_ERROR, "ERROR: No response handled ")); } } catch (const CORBA::Exception& ex) { ex._tao_print_exception ("Exception caught:"); return 1; } return exit_status; }