00001 // -*- C++ -*- 00002 /** 00003 * @file EC_TPC_Factory.h 00004 * 00005 * EC_TPC_Factory.h,v 1.5 2006/03/14 06:14:25 jtc Exp 00006 * 00007 */ 00008 00009 #ifndef TAO_EC_TPC_FACTORY_H 00010 #define TAO_EC_TPC_FACTORY_H 00011 #include /**/ "ace/pre.h" 00012 00013 #include "orbsvcs/Event/EC_Default_Factory.h" 00014 00015 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00016 # pragma once 00017 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00018 00019 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00020 00021 /** 00022 * @class TAO_EC_TPC_Factory 00023 * 00024 * @brief A generic factory for EC experimentation. 00025 * 00026 * This class allows the user to experiment with different EC 00027 * configurations. Using a command-line like interface the user 00028 * can specify which strategies will this factory generate. 00029 * Since the class can be dynamically loaded the strategies can be 00030 * set in the service configurator file. 00031 */ 00032 class TAO_RTEvent_Serv_Export TAO_EC_TPC_Factory : public TAO_EC_Default_Factory 00033 { 00034 public: 00035 /// Constructor 00036 TAO_EC_TPC_Factory (void); 00037 00038 /// destructor... 00039 virtual ~TAO_EC_TPC_Factory (void); 00040 00041 /// Helper function to register the default factory into the service 00042 /// configurator. 00043 static int init_svcs (void); 00044 00045 // = The Service_Object entry points 00046 virtual int init (int argc, char* argv[]); 00047 00048 // = The EC_Factory methods 00049 virtual TAO_EC_Dispatching* 00050 create_dispatching (TAO_EC_Event_Channel_Base*); 00051 00052 virtual TAO_EC_ProxyPushSupplier* 00053 create_proxy_push_supplier (TAO_EC_Event_Channel_Base*); 00054 00055 virtual TAO_EC_ProxyPushConsumer* 00056 create_proxy_push_consumer (TAO_EC_Event_Channel_Base*); 00057 }; 00058 00059 extern unsigned long EC_TPC_debug_level; 00060 00061 TAO_END_VERSIONED_NAMESPACE_DECL 00062 00063 ACE_STATIC_SVC_DECLARE (TAO_EC_TPC_Factory) 00064 ACE_FACTORY_DECLARE (TAO_RTEvent_Serv, TAO_EC_TPC_Factory) 00065 00066 #include /**/ "ace/post.h" 00067 #endif /* TAO_EC_TPC_FACTORY_H */