3
* @file EC_RTCORBA_Factory.h
5
* EC_RTCORBA_Factory.h,v 1.4 2003/07/21 06:42:28 jwillemsen Exp
7
* @author Carlos O'Ryan (coryan@cs.wustl.edu)
9
* Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and
10
* other members of the DOC group. More details can be found in:
12
* http://doc.ece.uci.edu/~coryan/EC/index.html
15
#ifndef TAO_EC_RTCORBA_FACTORY_H
16
#define TAO_EC_RTCORBA_FACTORY_H
17
#include /**/ "ace/pre.h"
19
#include "rtcorba_event_export.h"
20
#include "EC_Factory.h"
21
#include "tao/RTCORBA/RTCORBA.h"
23
#if !defined (ACE_LACKS_PRAGMA_ONCE)
25
#endif /* ACE_LACKS_PRAGMA_ONCE */
28
* @class TAO_EC_RTCORBA_Factory
30
* @brief Decorate an EC_Factory to use the EC_RTCORBA_Dispatching
33
class TAO_RTCORBAEvent_Export TAO_EC_RTCORBA_Factory : public TAO_EC_Factory
38
* @param body The decorated factory.
40
TAO_EC_RTCORBA_Factory (TAO_EC_Factory *body,
41
const RTCORBA::ThreadpoolLanes &lanes);
44
virtual ~TAO_EC_RTCORBA_Factory (void);
46
// Decorated methods...
47
virtual int init (int argc, char* argv[]);
48
virtual int fini (void);
49
virtual TAO_EC_Dispatching*
50
create_dispatching (TAO_EC_Event_Channel_Base*);
52
destroy_dispatching (TAO_EC_Dispatching*) ;
53
virtual TAO_EC_Filter_Builder*
54
create_filter_builder (TAO_EC_Event_Channel_Base*) ;
56
destroy_filter_builder (TAO_EC_Filter_Builder*);
57
virtual TAO_EC_Supplier_Filter_Builder*
58
create_supplier_filter_builder (TAO_EC_Event_Channel_Base*) ;
60
destroy_supplier_filter_builder (TAO_EC_Supplier_Filter_Builder*);
61
virtual TAO_EC_ConsumerAdmin*
62
create_consumer_admin (TAO_EC_Event_Channel_Base*) ;
64
destroy_consumer_admin (TAO_EC_ConsumerAdmin*);
65
virtual TAO_EC_SupplierAdmin*
66
create_supplier_admin (TAO_EC_Event_Channel_Base*) ;
68
destroy_supplier_admin (TAO_EC_SupplierAdmin*);
69
virtual TAO_EC_ProxyPushSupplier*
70
create_proxy_push_supplier (TAO_EC_Event_Channel_Base*);
72
destroy_proxy_push_supplier (TAO_EC_ProxyPushSupplier*);
73
virtual TAO_EC_ProxyPushConsumer*
74
create_proxy_push_consumer (TAO_EC_Event_Channel_Base*);
76
destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer*);
77
virtual TAO_EC_Timeout_Generator*
78
create_timeout_generator (TAO_EC_Event_Channel_Base*) ;
80
destroy_timeout_generator (TAO_EC_Timeout_Generator*);
81
virtual TAO_EC_ObserverStrategy*
82
create_observer_strategy (TAO_EC_Event_Channel_Base*);
84
destroy_observer_strategy (TAO_EC_ObserverStrategy*);
85
virtual TAO_EC_Scheduling_Strategy*
86
create_scheduling_strategy (TAO_EC_Event_Channel_Base*);
88
destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy*);
89
virtual TAO_EC_ProxyPushConsumer_Collection*
90
create_proxy_push_consumer_collection (TAO_EC_Event_Channel_Base*);
92
destroy_proxy_push_consumer_collection (TAO_EC_ProxyPushConsumer_Collection*);
93
virtual TAO_EC_ProxyPushSupplier_Collection*
94
create_proxy_push_supplier_collection (TAO_EC_Event_Channel_Base*);
96
destroy_proxy_push_supplier_collection (TAO_EC_ProxyPushSupplier_Collection*);
97
virtual ACE_Lock* create_consumer_lock (void);
98
virtual void destroy_consumer_lock (ACE_Lock*);
99
virtual ACE_Lock* create_supplier_lock (void);
100
virtual void destroy_supplier_lock (ACE_Lock*);
101
virtual TAO_EC_ConsumerControl*
102
create_consumer_control (TAO_EC_Event_Channel_Base*);
104
destroy_consumer_control (TAO_EC_ConsumerControl*);
105
virtual TAO_EC_SupplierControl*
106
create_supplier_control (TAO_EC_Event_Channel_Base*);
108
destroy_supplier_control (TAO_EC_SupplierControl*);
111
/// The decorated factory
112
TAO_EC_Factory *body_;
114
/// Configure the thread pool lanes.
115
RTCORBA::ThreadpoolLanes lanes_;
118
#if defined (__ACE_INLINE__)
119
#include "EC_RTCORBA_Factory.inl"
120
#endif /* __ACE_INLINE__ */
122
#include /**/ "ace/post.h"
123
#endif /* TAO_EC_RTCORBA_FACTORY_H */