// 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 class TAO_Server_Strategy_Factory : public ACE_Service_Object // = TITLE // Base class for the server's abstract factory that manufactures // 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. virtual int open (void); // Call on various strategies. This is not performed in // so that the other portions of the ORB have a chance to // "settle" in their initialization since the streategies herein // might need some of that information. // = Server-side factory types. typedef ACE_Creation_Strategy CREATION_STRATEGY; typedef ACE_Accept_Strategy ACCEPT_STRATEGY; typedef ACE_Concurrency_Strategy CONCURRENCY_STRATEGY; typedef ACE_Scheduling_Strategy 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 *create_object_table (void); // Return a new key-->object table }; #endif /* TAO_SERVER_FACTORY_H */