00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Null_Factory.h 00005 * 00006 * EC_Null_Factory.h,v 1.23 2006/03/14 06:14:25 jtc Exp 00007 * 00008 * @author Carlos O'Ryan (coryan@cs.wustl.edu) 00009 * 00010 * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and 00011 * other members of the DOC group. More details can be found in: 00012 * 00013 * http://doc.ece.uci.edu/~coryan/EC/index.html 00014 */ 00015 00016 #ifndef TAO_EC_NULL_FACTORY_H 00017 #define TAO_EC_NULL_FACTORY_H 00018 #include /**/ "ace/pre.h" 00019 00020 #include "orbsvcs/Event/EC_Factory.h" 00021 00022 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00023 # pragma once 00024 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 /** 00029 * @class TAO_EC_Null_Factory 00030 * 00031 * @brief The factory for a simple event channel. 00032 * 00033 * The simplest configuration for an event channel does no 00034 * filtering and uses reactive dispatching. This class is used to 00035 * configure such an event channel. 00036 * A fixed POA is used for servant activation. 00037 * This object creates a single instance of the Supplier 00038 */ 00039 class TAO_RTEvent_Serv_Export TAO_EC_Null_Factory : public TAO_EC_Factory 00040 { 00041 public: 00042 /// Constructor 00043 TAO_EC_Null_Factory (void); 00044 00045 /// destructor... 00046 virtual ~TAO_EC_Null_Factory (void); 00047 00048 // = The EC_Factory methods 00049 virtual TAO_EC_Dispatching* 00050 create_dispatching (TAO_EC_Event_Channel_Base*); 00051 virtual void 00052 destroy_dispatching (TAO_EC_Dispatching*); 00053 virtual TAO_EC_Filter_Builder* 00054 create_filter_builder (TAO_EC_Event_Channel_Base*); 00055 virtual void 00056 destroy_filter_builder (TAO_EC_Filter_Builder*); 00057 virtual TAO_EC_Supplier_Filter_Builder* 00058 create_supplier_filter_builder (TAO_EC_Event_Channel_Base*); 00059 virtual void 00060 destroy_supplier_filter_builder (TAO_EC_Supplier_Filter_Builder*); 00061 virtual TAO_EC_ConsumerAdmin* 00062 create_consumer_admin (TAO_EC_Event_Channel_Base*); 00063 virtual void 00064 destroy_consumer_admin (TAO_EC_ConsumerAdmin*); 00065 virtual TAO_EC_SupplierAdmin* 00066 create_supplier_admin (TAO_EC_Event_Channel_Base*); 00067 virtual void 00068 destroy_supplier_admin (TAO_EC_SupplierAdmin*); 00069 virtual TAO_EC_ProxyPushSupplier* 00070 create_proxy_push_supplier (TAO_EC_Event_Channel_Base*); 00071 virtual void 00072 destroy_proxy_push_supplier (TAO_EC_ProxyPushSupplier*); 00073 virtual TAO_EC_ProxyPushConsumer* 00074 create_proxy_push_consumer (TAO_EC_Event_Channel_Base*); 00075 virtual void 00076 destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer*); 00077 virtual TAO_EC_Timeout_Generator* 00078 create_timeout_generator (TAO_EC_Event_Channel_Base*); 00079 virtual void 00080 destroy_timeout_generator (TAO_EC_Timeout_Generator*); 00081 virtual TAO_EC_ObserverStrategy* 00082 create_observer_strategy (TAO_EC_Event_Channel_Base*); 00083 virtual void 00084 destroy_observer_strategy (TAO_EC_ObserverStrategy*); 00085 virtual TAO_EC_Scheduling_Strategy* 00086 create_scheduling_strategy (TAO_EC_Event_Channel_Base*); 00087 virtual void 00088 destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*); 00089 virtual TAO_EC_ProxyPushConsumer_Collection* 00090 create_proxy_push_consumer_collection (TAO_EC_Event_Channel_Base*); 00091 virtual void 00092 destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*); 00093 virtual TAO_EC_ProxyPushSupplier_Collection* 00094 create_proxy_push_supplier_collection (TAO_EC_Event_Channel_Base*); 00095 virtual void 00096 destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*); 00097 00098 virtual ACE_Lock* create_consumer_lock (void); 00099 virtual void destroy_consumer_lock (ACE_Lock*); 00100 virtual ACE_Lock* create_supplier_lock (void); 00101 virtual void destroy_supplier_lock (ACE_Lock*); 00102 00103 virtual TAO_EC_ConsumerControl* 00104 create_consumer_control (TAO_EC_Event_Channel_Base*); 00105 virtual void 00106 destroy_consumer_control (TAO_EC_ConsumerControl*); 00107 virtual TAO_EC_SupplierControl* 00108 create_supplier_control (TAO_EC_Event_Channel_Base*); 00109 virtual void 00110 destroy_supplier_control (TAO_EC_SupplierControl*); 00111 }; 00112 00113 TAO_END_VERSIONED_NAMESPACE_DECL 00114 00115 #include /**/ "ace/post.h" 00116 #endif /* TAO_EC_NULL_FACTORY_H */