EC_Basic_Factory.h

Go to the documentation of this file.
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 */

Generated on Thu Nov 9 13:11:06 2006 for TAO_RTEvent by doxygen 1.3.6