diff options
Diffstat (limited to 'TAO/tao/Messaging_ORBInitializer.cpp')
-rw-r--r-- | TAO/tao/Messaging_ORBInitializer.cpp | 76 |
1 files changed, 32 insertions, 44 deletions
diff --git a/TAO/tao/Messaging_ORBInitializer.cpp b/TAO/tao/Messaging_ORBInitializer.cpp index 72cc5b4f09e..24812b46d65 100644 --- a/TAO/tao/Messaging_ORBInitializer.cpp +++ b/TAO/tao/Messaging_ORBInitializer.cpp @@ -1,4 +1,6 @@ // -*- C++ -*- +// +// $Id$ #include "tao/Messaging_ORBInitializer.h" @@ -9,10 +11,8 @@ ACE_RCSID (TAO, #if TAO_HAS_CORBA_MESSAGING == 1 #include "tao/Messaging_Policy_i.h" -#include "tao/Messaging_PolicyFactory.h" #include "tao/ORB_Core.h" - void TAO_Messaging_ORBInitializer::pre_init ( PortableInterceptor::ORBInitInfo_ptr @@ -23,7 +23,7 @@ TAO_Messaging_ORBInitializer::pre_init ( TAO_ORB_Core::set_timeout_hook (TAO_RelativeRoundtripTimeoutPolicy::hook); #endif /* TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY == 1 */ - + #if (TAO_HAS_SYNC_SCOPE_POLICY == 1) TAO_ORB_Core::set_sync_scope_hook (TAO_Sync_Scope_Policy::hook); #endif /* TAO_HAS_SYNC_SCOPE_POLICY == 1 */ @@ -51,36 +51,24 @@ TAO_Messaging_ORBInitializer::register_policy_factories ( // The Messaging policy factory is stateless and reentrant, so share a // single instance between all ORBs. - if (CORBA::is_nil (this->policy_factory_.in ())) - { - PortableInterceptor::PolicyFactory_ptr policy_factory; - ACE_NEW_THROW_EX (policy_factory, - TAO_Messaging_PolicyFactory, - CORBA::NO_MEMORY ( - CORBA::SystemException::_tao_minor_code ( - TAO_DEFAULT_MINOR_CODE, - ENOMEM), - CORBA::COMPLETED_NO)); - ACE_CHECK; - - this->policy_factory_ = policy_factory; - } + PortableInterceptor::PolicyFactory_ptr policy_factory = + &(this->policy_factory_); // Bind the same policy factory to all Messaging related policy // types since a single policy factory is used to create each of // the different types of Messaging policies. CORBA::PolicyType type; - + type = TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; @@ -88,76 +76,76 @@ TAO_Messaging_ORBInitializer::register_policy_factories ( type = TAO_BUFFERING_CONSTRAINT_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; #endif /* TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1 */ - + type = TAO_MESSAGING_REBIND_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_REQUEST_PRIORITY_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_REPLY_PRIORITY_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_REQUEST_START_TIME_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_REQUEST_END_TIME_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_REPLY_START_TIME_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_REPLY_END_TIME_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_RELATIVE_REQ_TIMEOUT_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_ROUTING_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_MAX_HOPS_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; - + type = TAO_MESSAGING_QUEUE_ORDER_POLICY_TYPE; info->register_policy_factory (type, - this->policy_factory_.in (), + policy_factory, ACE_TRY_ENV); ACE_CHECK; } |