EC_RTCORBA_Factory.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 /**
00003  *  @file EC_RTCORBA_Factory.h
00004  *
00005  *  EC_RTCORBA_Factory.h,v 1.7 2006/03/14 06:14:25 jtc Exp
00006  *
00007  *  @author Carlos O'Ryan (coryan@cs.wustl.edu)
00008  *
00009  * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and
00010  * other members of the DOC group. More details can be found in:
00011  *
00012  * http://doc.ece.uci.edu/~coryan/EC/index.html
00013  */
00014 
00015 #ifndef TAO_EC_RTCORBA_FACTORY_H
00016 #define TAO_EC_RTCORBA_FACTORY_H
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "orbsvcs/Event/rtcorba_event_export.h"
00020 #include "orbsvcs/Event/EC_Factory.h"
00021 #include "tao/RTCORBA/RTCORBA.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_RTCORBA_Factory
00031  *
00032  * @brief Decorate an EC_Factory to use the EC_RTCORBA_Dispatching
00033  * module.
00034  */
00035 class TAO_RTCORBAEvent_Export TAO_EC_RTCORBA_Factory : public TAO_EC_Factory
00036 {
00037 public:
00038   /// Constructor
00039   /**
00040    * @param body The decorated factory.
00041    */
00042   TAO_EC_RTCORBA_Factory (TAO_EC_Factory *body,
00043                           const RTCORBA::ThreadpoolLanes &lanes);
00044 
00045   /// destructor...
00046   virtual ~TAO_EC_RTCORBA_Factory (void);
00047 
00048   // Decorated methods...
00049   virtual int init (int argc, char* argv[]);
00050   virtual int fini (void);
00051   virtual TAO_EC_Dispatching*
00052       create_dispatching (TAO_EC_Event_Channel_Base*);
00053   virtual void
00054       destroy_dispatching (TAO_EC_Dispatching*) ;
00055   virtual TAO_EC_Filter_Builder*
00056       create_filter_builder (TAO_EC_Event_Channel_Base*)  ;
00057   virtual void
00058       destroy_filter_builder (TAO_EC_Filter_Builder*);
00059   virtual TAO_EC_Supplier_Filter_Builder*
00060       create_supplier_filter_builder (TAO_EC_Event_Channel_Base*)  ;
00061   virtual void
00062       destroy_supplier_filter_builder (TAO_EC_Supplier_Filter_Builder*);
00063   virtual TAO_EC_ConsumerAdmin*
00064       create_consumer_admin (TAO_EC_Event_Channel_Base*) ;
00065   virtual void
00066       destroy_consumer_admin (TAO_EC_ConsumerAdmin*);
00067   virtual TAO_EC_SupplierAdmin*
00068       create_supplier_admin (TAO_EC_Event_Channel_Base*) ;
00069   virtual void
00070       destroy_supplier_admin (TAO_EC_SupplierAdmin*);
00071   virtual TAO_EC_ProxyPushSupplier*
00072       create_proxy_push_supplier (TAO_EC_Event_Channel_Base*);
00073   virtual void
00074       destroy_proxy_push_supplier (TAO_EC_ProxyPushSupplier*);
00075   virtual TAO_EC_ProxyPushConsumer*
00076       create_proxy_push_consumer (TAO_EC_Event_Channel_Base*);
00077   virtual void
00078       destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer*);
00079   virtual TAO_EC_Timeout_Generator*
00080       create_timeout_generator (TAO_EC_Event_Channel_Base*) ;
00081   virtual void
00082       destroy_timeout_generator (TAO_EC_Timeout_Generator*);
00083   virtual TAO_EC_ObserverStrategy*
00084       create_observer_strategy (TAO_EC_Event_Channel_Base*);
00085   virtual void
00086       destroy_observer_strategy (TAO_EC_ObserverStrategy*);
00087   virtual TAO_EC_Scheduling_Strategy*
00088       create_scheduling_strategy (TAO_EC_Event_Channel_Base*);
00089   virtual void
00090       destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*);
00091   virtual TAO_EC_ProxyPushConsumer_Collection*
00092       create_proxy_push_consumer_collection (TAO_EC_Event_Channel_Base*);
00093   virtual void
00094       destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*);
00095   virtual TAO_EC_ProxyPushSupplier_Collection*
00096       create_proxy_push_supplier_collection (TAO_EC_Event_Channel_Base*);
00097   virtual void
00098       destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*);
00099   virtual ACE_Lock* create_consumer_lock (void);
00100   virtual void destroy_consumer_lock (ACE_Lock*);
00101   virtual ACE_Lock* create_supplier_lock (void);
00102   virtual void destroy_supplier_lock (ACE_Lock*);
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 protected:
00113   /// The decorated factory
00114   TAO_EC_Factory *body_;
00115 
00116   /// Configure the thread pool lanes.
00117   RTCORBA::ThreadpoolLanes lanes_;
00118 };
00119 
00120 TAO_END_VERSIONED_NAMESPACE_DECL
00121 
00122 #include /**/ "ace/post.h"
00123 #endif /* TAO_EC_RTCORBA_FACTORY_H */

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