diff options
Diffstat (limited to 'TAO/tao/server_factory.h')
-rw-r--r-- | TAO/tao/server_factory.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/TAO/tao/server_factory.h b/TAO/tao/server_factory.h new file mode 100644 index 00000000000..e75fa94a64b --- /dev/null +++ b/TAO/tao/server_factory.h @@ -0,0 +1,80 @@ +// This may look like C, but it's really -*- C++ -*- + +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// server_factory.h +// +// = AUTHOR +// Chris Cleeland +// +// = VERSION +// $Id$ +// ============================================================================ + +#if !defined(TAO_SERVER_FACTORY_H) +# define TAO_SERVER_FACTORY_H + +# include "ace/SOCK_Acceptor.h" +# include "ace/Svc_Handler.h" +# include "ace/Strategies_T.h" +# include "ace/Connector.h" +# include "ace/Synch.h" +# include "ace/Service_Object.h" + +# include "tao/connect.h" +# include "tao/objtable.h" + + +class TAO_Server_Strategy_Factory : public ACE_Service_Object + // = TITLE + // + // Base class for the server's abstract factory which turns out + // various strategies of special utility to it. This simply + // serves as an interface to a subclass that REALLY gets + // specified and loaded by the Service Configurator. +{ +public: + // = Initialization and termination methods. + TAO_Server_Strategy_Factory (void); + // constructor + + virtual ~TAO_Server_Strategy_Factory(void); + // destructor + + + // = SERVER-SIDE factory types. + typedef ACE_Creation_Strategy<TAO_OA_Connection_Handler> CREATION_STRATEGY; + typedef ACE_Accept_Strategy<TAO_OA_Connection_Handler, ACE_SOCK_ACCEPTOR> ACCEPT_STRATEGY; + typedef ACE_Concurrency_Strategy<TAO_OA_Connection_Handler> CONCURRENCY_STRATEGY; + typedef ACE_Scheduling_Strategy<TAO_OA_Connection_Handler> SCHEDULING_STRATEGY; + + // = Factory methods for the server-side strategies. + + virtual CREATION_STRATEGY *creation_strategy (void); + // Return concrete creation strategy. + + virtual ACCEPT_STRATEGY *accept_strategy (void); + // Return concrete acceptor strategy. + + virtual CONCURRENCY_STRATEGY *concurrency_strategy (void); + // Return the concurrency strategy used. + + virtual SCHEDULING_STRATEGY *scheduling_strategy (void); + // Return the scheduling strategy used. + + virtual TAO_Object_Table *object_lookup_strategy (void); + // Return the concrete object lookup strategy. + +private: +}; + + +# if defined(__ACE_INLINE__) +# include "server_factory.i" +# endif + +#endif |