// -*- C++ -*- //============================================================================= /** * @file Default_Endpoint_Selector_Factory.h * * $Id$ * * Strategies for selecting profile/endpoint from an IOR for making an * invocation. * * @author Marina Spivak * @author Frank Hunleth */ //============================================================================= #ifndef TAO_DEFAULT_ENDPOINT_SELECTOR_FACTORY_H #define TAO_DEFAULT_ENDPOINT_SELECTOR_FACTORY_H #include /**/ "ace/pre.h" #include "ace/Service_Config.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "tao/Endpoint_Selector_Factory.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL // Forward references class TAO_Default_Endpoint_Selector; // **************************************************************** /** * @class TAO_Default_Endpoint_Selector_Factory * * @brief Factory for initializing and * obtaining appropriate . * * Used by Invocation classes to intialize its endpoint selection * strategy and state based on the effective policies. * Endpoint selection strategies are stateless objects - all the * state they need is contained by Invocation in * . Thus, rather than allocating an * endpoint selection strategy object for each Invocation, the * factory simply returns the appropriate one from the * set preallocated in the ORB_Core. One endpoint selection * strategy object can be used by many invocations concurrently. */ class TAO_Export TAO_Default_Endpoint_Selector_Factory : public TAO_Endpoint_Selector_Factory { public: /// Constructor. TAO_Default_Endpoint_Selector_Factory (void); /// Destructor. virtual ~TAO_Default_Endpoint_Selector_Factory (void); /// Get an Invocation's endpoint selection strategy and /// initialize the endpoint selection state instance. virtual TAO_Invocation_Endpoint_Selector *get_selector ( ACE_ENV_SINGLE_ARG_DECL); private: // Prevent copying/assignment. TAO_Default_Endpoint_Selector_Factory (TAO_Default_Endpoint_Selector_Factory const &); void operator= (TAO_Default_Endpoint_Selector_Factory const &); protected: /// The possible endpoint selector strategies that can be /// returned by this factory TAO_Default_Endpoint_Selector * const default_endpoint_selector_; }; TAO_END_VERSIONED_NAMESPACE_DECL ACE_STATIC_SVC_DECLARE_EXPORT (TAO, TAO_Default_Endpoint_Selector_Factory) ACE_FACTORY_DECLARE (TAO, TAO_Default_Endpoint_Selector_Factory) #include /**/ "ace/post.h" #endif /* TAO_DEFAULT_ENDPOINT_SELECTOR_FACTORY_H */