diff options
Diffstat (limited to 'TAO/tao/PortableServer/Active_Policy_Strategies.h')
-rw-r--r-- | TAO/tao/PortableServer/Active_Policy_Strategies.h | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/TAO/tao/PortableServer/Active_Policy_Strategies.h b/TAO/tao/PortableServer/Active_Policy_Strategies.h index b683ed244eb..f05fbba535c 100644 --- a/TAO/tao/PortableServer/Active_Policy_Strategies.h +++ b/TAO/tao/PortableServer/Active_Policy_Strategies.h @@ -14,11 +14,20 @@ #include /**/ "ace/pre.h" #include "tao/orbconf.h" +#include <memory> #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "tao/PortableServer/ThreadPolicyC.h" +#include "tao/PortableServer/IdAssignmentPolicyC.h" +#include "tao/PortableServer/IdUniquenessPolicyC.h" +#include "tao/PortableServer/ServantRetentionPolicyC.h" +#include "tao/PortableServer/LifespanPolicyC.h" +#include "tao/PortableServer/ImplicitActivationPolicyC.h" +#include "tao/PortableServer/RequestProcessingPolicyC.h" + TAO_BEGIN_VERSIONED_NAMESPACE_DECL class TAO_Root_POA; @@ -36,24 +45,15 @@ namespace TAO class ImplicitActivationStrategy; class ServantRetentionStrategy; - class ThreadStrategyFactory; - class ServantRetentionStrategyFactory; - class RequestProcessingStrategyFactory; - class LifespanStrategyFactory; - class ImplicitActivationStrategyFactory; - class IdUniquenessStrategyFactory; - class IdAssignmentStrategyFactory; - /** * This class stores the active policy strategies used for a certain POA. */ class Active_Policy_Strategies { public: - Active_Policy_Strategies (); + Active_Policy_Strategies () = default; - void update (Cached_Policies &policies, - TAO_Root_POA* poa); + void update (Cached_Policies &policies, TAO_Root_POA* poa); void cleanup (); @@ -72,21 +72,22 @@ namespace TAO ServantRetentionStrategy *servant_retention_strategy () const; private: - ThreadStrategy *thread_strategy_; - RequestProcessingStrategy *request_processing_strategy_; - IdAssignmentStrategy *id_assignment_strategy_; - LifespanStrategy *lifespan_strategy_; - IdUniquenessStrategy *id_uniqueness_strategy_; - ImplicitActivationStrategy *implicit_activation_strategy_; - ServantRetentionStrategy *servant_retention_strategy_; - - ThreadStrategyFactory *thread_strategy_factory_; - ServantRetentionStrategyFactory *servant_retention_strategy_factory_; - RequestProcessingStrategyFactory *request_processing_strategy_factory_; - LifespanStrategyFactory *lifespan_strategy_factory_; - ImplicitActivationStrategyFactory *implicit_activation_strategy_factory_; - IdUniquenessStrategyFactory *id_uniqueness_strategy_factory_; - IdAssignmentStrategyFactory *id_assignment_strategy_factory_; + void create (::PortableServer::ThreadPolicyValue value); + void create (::PortableServer::IdAssignmentPolicyValue value); + void create (::PortableServer::IdUniquenessPolicyValue value); + void create (::PortableServer::ServantRetentionPolicyValue value); + void create (::PortableServer::LifespanPolicyValue value); + void create (::PortableServer::ImplicitActivationPolicyValue value); + void create (::PortableServer::RequestProcessingPolicyValue value, ::PortableServer::ServantRetentionPolicyValue srvalue); + + private: + std::unique_ptr<ThreadStrategy> thread_strategy_ {}; + std::unique_ptr<IdAssignmentStrategy> id_assignment_strategy_ {}; + std::unique_ptr<IdUniquenessStrategy> id_uniqueness_strategy_ {}; + std::unique_ptr<ServantRetentionStrategy> servant_retention_strategy_ {}; + std::unique_ptr<LifespanStrategy> lifespan_strategy_ {}; + std::unique_ptr<ImplicitActivationStrategy> implicit_activation_strategy_ {}; + std::unique_ptr<RequestProcessingStrategy> request_processing_strategy_ {}; }; /** @@ -96,6 +97,7 @@ namespace TAO class Active_Policy_Strategies_Cleanup_Guard { public: + Active_Policy_Strategies_Cleanup_Guard () = delete; Active_Policy_Strategies_Cleanup_Guard (Active_Policy_Strategies *p); ~Active_Policy_Strategies_Cleanup_Guard (); |