2 //=============================================================================
6 * @author Huang-Ming Huang <hh1@cse.wustl.edu>
8 //=============================================================================
10 #ifndef PUSHSUPPLIER_H
11 #define PUSHSUPPLIER_H
13 #include "orbsvcs/RtecEventCommS.h"
14 #include "orbsvcs/RtecEventChannelAdminC.h"
15 #include "ace/Event_Handler.h"
17 #include "ace/Reactor.h"
18 #include "ace/Time_Value.h"
20 class PushSupplier_impl
:
21 public virtual ACE_Event_Handler
22 , public virtual POA_RtecEventComm::PushSupplier
25 PushSupplier_impl(CORBA::ORB_ptr orb
);
28 int init(RtecEventChannelAdmin::EventChannel_ptr
);
30 virtual void disconnect_push_supplier ();
32 class ReactorTask
: public ACE_Task_Base
36 ReactorTask(ACE_Event_Handler
* handler
) : reactor_(0), handler_(handler
){}
38 // The thread entry point.
40 ACE_Reactor
* reactor_
;
41 ACE_Event_Handler
* handler_
;
44 virtual int handle_timeout (const ACE_Time_Value
¤t_time
,
48 ReactorTask reactor_task_
;
49 RtecEventChannelAdmin::ProxyPushConsumer_var consumer_
;
50 PushSupplier_impl(const PushSupplier_impl
&);
51 bool operator==(const PushSupplier_impl
&);