00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Basic_Factory.h 00005 * 00006 * EC_Basic_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_BASIC_FACTORY_H 00017 #define TAO_EC_BASIC_FACTORY_H 00018 00019 #include /**/ "ace/pre.h" 00020 00021 #include "orbsvcs/Event/EC_Factory.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00028 00029 /** 00030 * @class TAO_EC_Basic_Factory 00031 * 00032 * @brief The factory for a simple event channel. 00033 * 00034 * An slightly more advanced configuration than the 00035 * EC_Null_Factory, this class configure an event channel that can 00036 * support filtering and correlation. Still dispatching is not 00037 * prioritized and all the filtering is done at the consumer level. 00038 * A fixed POA is used for servant activation. 00039 * This object creates a single instance of the Supplier 00040 * 00041 */ 00042 class TAO_RTEvent_Serv_Export TAO_EC_Basic_Factory : public TAO_EC_Factory 00043 { 00044 public: 00045 /// Constructor 00046 TAO_EC_Basic_Factory (void); 00047 00048 /// destructor... 00049 virtual ~TAO_EC_Basic_Factory (void); 00050 00051 // = The EC_Factory methods 00052 virtual TAO_EC_Dispatching* 00053 create_dispatching (TAO_EC_Event_Channel_Base*); 00054 virtual void 00055 destroy_dispatching (TAO_EC_Dispatching*); 00056 virtual TAO_EC_Filter_Builder* 00057 create_filter_builder (TAO_EC_Event_Channel_Base*); 00058 virtual void 00059 destroy_filter_builder (TAO_EC_Filter_Builder*); 00060 virtual TAO_EC_Supplier_Filter_Builder* 00061 create_supplier_filter_builder (TAO_EC_Event_Channel_Base*); 00062 virtual void 00063 destroy_supplier_filter_builder (TAO_EC_Supplier_Filter_Builder*); 00064 virtual TAO_EC_ConsumerAdmin* 00065 create_consumer_admin (TAO_EC_Event_Channel_Base*); 00066 virtual void 00067 destroy_consumer_admin (TAO_EC_ConsumerAdmin*); 00068 virtual TAO_EC_SupplierAdmin* 00069 create_supplier_admin (TAO_EC_Event_Channel_Base*); 00070 virtual void 00071 destroy_supplier_admin (TAO_EC_SupplierAdmin*); 00072 virtual TAO_EC_ProxyPushSupplier* 00073 create_proxy_push_supplier (TAO_EC_Event_Channel_Base*); 00074 virtual void 00075 destroy_proxy_push_supplier (TAO_EC_ProxyPushSupplier*); 00076 virtual TAO_EC_ProxyPushConsumer* 00077 create_proxy_push_consumer (TAO_EC_Event_Channel_Base*); 00078 virtual void 00079 destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer*); 00080 virtual TAO_EC_Timeout_Generator* 00081 create_timeout_generator (TAO_EC_Event_Channel_Base*); 00082 virtual void 00083 destroy_timeout_generator (TAO_EC_Timeout_Generator*); 00084 virtual TAO_EC_ObserverStrategy* 00085 create_observer_strategy (TAO_EC_Event_Channel_Base*); 00086 virtual void 00087 destroy_observer_strategy (TAO_EC_ObserverStrategy*); 00088 virtual TAO_EC_Scheduling_Strategy* 00089 create_scheduling_strategy (TAO_EC_Event_Channel_Base*); 00090 virtual void 00091 destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*); 00092 virtual TAO_EC_ProxyPushConsumer_Collection* 00093 create_proxy_push_consumer_collection (TAO_EC_Event_Channel_Base*); 00094 virtual void 00095 destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*); 00096 virtual TAO_EC_ProxyPushSupplier_Collection* 00097 create_proxy_push_supplier_collection (TAO_EC_Event_Channel_Base*); 00098 virtual void 00099 destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*); 00100 00101 virtual ACE_Lock* create_consumer_lock (void); 00102 virtual void destroy_consumer_lock (ACE_Lock*); 00103 virtual ACE_Lock* create_supplier_lock (void); 00104 virtual void destroy_supplier_lock (ACE_Lock*); 00105 00106 virtual TAO_EC_ConsumerControl* 00107 create_consumer_control (TAO_EC_Event_Channel_Base*); 00108 virtual void 00109 destroy_consumer_control (TAO_EC_ConsumerControl*); 00110 virtual TAO_EC_SupplierControl* 00111 create_supplier_control (TAO_EC_Event_Channel_Base*); 00112 virtual void 00113 destroy_supplier_control (TAO_EC_SupplierControl*); 00114 }; 00115 00116 TAO_END_VERSIONED_NAMESPACE_DECL 00117 00118 #include /**/ "ace/post.h" 00119 00120 #endif /* TAO_EC_BASIC_FACTORY_H */