void ClientInitializer::post_init (PortableInterceptor::ORBInitInfo_ptr info) { // get Codec factory IOP::CodecFactory_var codec_factory = info->codec_factory(); // Create and register the request interceptors. PortableInterceptor::ClientRequestInterceptor_var ci = new ClientInterceptor (codec_factory); info->add_client_request_interceptor (ci.in()); }
void ClientInitializer::post_init (PortableInterceptor::ORBInitInfo_ptr info) { // Find the Naming Service CORBA::Object_var naming_obj = info->resolve_initial_references("NameService"); CosNaming::NamingContext_var root = CosNaming::NamingContext::_narrow(naming_obj.in()); if( CORBA::is_nil(root.in())) { std::cerr << "Nil Naming Context reference" << std::endl; ACE_ASSERT(false); } // Resolve the Messenger object CosNaming::Name name; name.length( 1 ); name[0].id = CORBA::string_dup( "Messenger" ); CORBA::Object_var obj = CORBA::Object::_nil(); while ( CORBA::is_nil( obj.in() ) ) { try { obj = root->resolve( name ); } catch (const CosNaming::NamingContext::NotFound&) { // Sleep for a second and try again ACE_OS::sleep(1); } } Messenger_var messenger = Messenger::_narrow( obj.in() ); if( CORBA::is_nil( messenger.in() ) ) { std::cerr << "Not a Messenger reference" << std::endl; ACE_ASSERT(false); } // allocate slot slot_ = info->allocate_slot_id(); // get PICurrent CORBA::Object_var current_obj = info->resolve_initial_references("PICurrent"); current_ = PortableInterceptor::Current::_narrow(current_obj.in()); // Create and register the request interceptors. PortableInterceptor::ClientRequestInterceptor_var ci = new ClientInterceptor(messenger, current_.in(), slot_); info->add_client_request_interceptor (ci.in()); }
void Client_ORBInitializer::post_init ( PortableInterceptor::ORBInitInfo_ptr info) { PortableInterceptor::ClientRequestInterceptor_ptr tmp = PortableInterceptor::ClientRequestInterceptor::_nil (); switch (this->interceptor_type_) { default: case IT_NONE: return; case IT_NOOP: { // Installing the Vault interceptor ACE_NEW_THROW_EX (tmp, Vault_Client_Request_NOOP_Interceptor (), CORBA::NO_MEMORY ()); break; } case IT_CONTEXT: { // Installing the Vault interceptor ACE_NEW_THROW_EX (tmp, Vault_Client_Request_Context_Interceptor (), CORBA::NO_MEMORY ()); break; } case IT_DYNAMIC: { // Installing the Vault interceptor ACE_NEW_THROW_EX (tmp, Vault_Client_Request_Dynamic_Interceptor (), CORBA::NO_MEMORY ()); break; } } PortableInterceptor::ClientRequestInterceptor_var interceptor = tmp; info->add_client_request_interceptor (interceptor.in ()); }