2 // author : Boris Kolpackov <boris@dre.vanderbilt.edu>
6 #include "ace/INET_Addr.h"
9 #include "ace/Thread_Mutex.h"
10 #include "ace/Thread_Manager.h"
12 #include "tao/corba.h"
14 #include "orbsvcs/CosNotificationC.h"
15 #include "orbsvcs/CosNotifyChannelAdminC.h"
16 #include "orbsvcs/CosNotifyCommC.h"
17 #include "orbsvcs/CosNotifyCommS.h"
19 #include "ace/RMCast/Socket.h"
23 class Gate_Export Gate
: public POA_CosNotifyComm::StructuredPushConsumer
29 Gate (ACE_INET_Addr
const& group
,
30 CosNotifyChannelAdmin::EventChannel_ptr ch
);
32 Gate (ACE_INET_Addr
const& group
,
33 CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin
,
34 CosNotifyChannelAdmin::SupplierAdmin_ptr supplier_admin
);
38 init (CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin
,
39 CosNotifyChannelAdmin::SupplierAdmin_ptr supplier_admin
);
41 static ACE_THR_FUNC_RETURN
42 tracker_thunk (void* arg
);
48 // NotifyPublish interface.
51 offer_change (CosNotification::EventTypeSeq
const&,
52 CosNotification::EventTypeSeq
const&);
54 // StructuredPushSupplier interface.
57 push_structured_event (CosNotification::StructuredEvent
const& e
);
61 disconnect_structured_push_consumer (void);
66 CosNotifyChannelAdmin::ProxyID consumer_id_
;
67 CosNotifyChannelAdmin::StructuredProxyPushConsumer_var consumer_
;
69 CosNotifyChannelAdmin::ProxyID supplier_id_
;
70 CosNotifyChannelAdmin::StructuredProxyPushSupplier_var supplier_
;
72 ACE_RMCast::Socket socket_
;
73 CORBA::String_var id_
;
76 TAO_SYNCH_MUTEX mutex_
;
77 ACE_Thread_Manager thread_mgr_
;