2 //=============================================================================
6 * Test Supplier reconnect to existing channel/admin/proxy Notification Service
8 * @author Dale Wilson <wilson_d@ociweb.com>
10 //=============================================================================
13 #ifndef RECONNECTNG_SUPPLIER_H
14 #define RECONNECTNG_SUPPLIER_H
16 #include "orbsvcs/CosNotifyChannelAdminC.h"
17 #include "orbsvcs/CosNamingC.h"
18 #include "orbsvcs/NotifyExtS.h"
19 #include <ace/SString.h>
23 class StructuredPushSupplier_i
: public virtual POA_CosNotifyComm::StructuredPushSupplier
25 virtual void subscription_change (
26 const CosNotification::EventTypeSeq
& added
,
27 const CosNotification::EventTypeSeq
& removed
);
29 virtual void disconnect_structured_push_supplier (void);
32 class SequencePushSupplier_i
: public virtual POA_CosNotifyComm::SequencePushSupplier
34 virtual void subscription_change (
35 const CosNotification::EventTypeSeq
& added
,
36 const CosNotification::EventTypeSeq
& removed
);
38 virtual void disconnect_sequence_push_supplier (void);
41 class AnyPushSupplier_i
: public virtual POA_CosNotifyComm::PushSupplier
43 virtual void subscription_change (
44 const CosNotification::EventTypeSeq
& added
,
45 const CosNotification::EventTypeSeq
& removed
);
47 virtual void disconnect_push_supplier (void);
50 class ReconnectionCallback_i
: public virtual POA_NotifyExt::ReconnectionCallback
53 ReconnectionCallback_i (Supplier_Main
& supplier_main
);
55 virtual ~ReconnectionCallback_i ();
58 PortableServer::POA_ptr poa
,
59 CosNotifyChannelAdmin::EventChannelFactory_ptr ecf_
);
63 size_t reconnect_count () const;
65 virtual void reconnect (CORBA::Object_ptr reconnection
);
67 virtual CORBA::Boolean
is_alive (void);
70 Supplier_Main
& supplier_main_
;
72 NotifyExt::ReconnectionRegistry::ReconnectionID callback_id_
;
73 CosNotifyChannelAdmin::EventChannelFactory_var ecf_
;
74 size_t reconnect_count_
;
83 int parse_args (int argc
, ACE_TCHAR
*argv
[]);
84 int parse_single_arg (int argc
, ACE_TCHAR
*argv
[]);
86 int init (int argc
, ACE_TCHAR
*argv
[]);
89 void usage (FILE * log
) const;
92 CosNotifyChannelAdmin::EventChannelFactory_ptr dest_factory
);
95 /// Find naming service.
96 int resolve_naming_service (void);
98 /// Resolve the Notify factory from the Naming service.
99 int find_notify_factory (void);
101 /// Resolve the Notify factory using resolve_initial_reference ("NotifyEventChannelFactory")
102 int resolve_notify_factory (void);
104 void init_event_channel (void);
105 void init_supplier_admin (void);
106 void init_structured_proxy_consumer (void);
107 void init_sequence_proxy_consumer (void);
108 void init_any_proxy_consumer (void);
111 void send_structured_event (void);
112 void send_sequence_event (void);
113 void send_any_event (void);
121 Supplier_Main (const Supplier_Main
& rhs
);
122 Supplier_Main
& operator = (const Supplier_Main
& rhs
);
128 // set by command line parameters
129 bool verbose_
; // -v make a glorious noise
133 MODE_SEQUENCE
} mode_
; // -any, -structured, or -sequence
134 ACE_TString channel_file_
; // -channel filename
135 size_t send_
; // -send n
136 bool use_naming_service_
; // -nonamesvc
137 size_t serial_number_
; // -serial_number
138 bool disconnect_on_exit_
; // -disconnect
139 ACE_TString id_file_
; // -ids
140 size_t pause_
; // -pause n (pause after sending n messages)
142 PortableServer::POA_var root_poa_
;
143 CosNaming::NamingContext_var naming_context_
;
144 CosNotifyChannelAdmin::EventChannelFactory_var ecf_
;
146 CosNotifyChannelAdmin::EventChannel_var ec_
;
147 CosNotifyChannelAdmin::ChannelID ec_id_
;
149 CosNotifyChannelAdmin::SupplierAdmin_var sa_
;
150 CosNotifyChannelAdmin::AdminID sa_id_
;
152 CosNotifyChannelAdmin::StructuredProxyPushConsumer_var structured_proxy_push_consumer_
;
153 CosNotifyChannelAdmin::ProxyID structured_proxy_id_
;
154 StructuredPushSupplier_i structured_push_supplier_
;
155 CosNotifyComm::StructuredPushSupplier_var structured_push_supplier_ref_
;
158 CosNotifyChannelAdmin::SequenceProxyPushConsumer_var sequence_proxy_push_consumer_
;
159 CosNotifyChannelAdmin::ProxyID sequence_proxy_id_
;
160 SequencePushSupplier_i sequence_push_supplier_
;
161 CosNotifyComm::SequencePushSupplier_var sequence_push_supplier_ref_
;
163 CosNotifyChannelAdmin::ProxyPushConsumer_var any_proxy_push_consumer_
;
164 CosNotifyChannelAdmin::ProxyID any_proxy_id_
;
165 AnyPushSupplier_i any_push_supplier_
;
166 CosNotifyComm::PushSupplier_var any_push_supplier_ref_
;
168 ReconnectionCallback_i reconnection_callback_
;
175 #endif /* RECONNECTNG_SUPPLIER_H */