00001 #ifndef COSNOTIFYCOMM_IDL
00002 #define COSNOTIFYCOMM_IDL
00003
00004 #include <CosEventComm.idl>
00005 #include <CosNotification.idl>
00006
00017 #pragma prefix "omg.org"
00018
00019 module CosNotifyComm
00020 {
00024 exception InvalidEventType { CosNotification::EventType type; };
00025
00029 interface NotifyPublish
00030 {
00039 void offer_change (
00040 in CosNotification::EventTypeSeq added,
00041 in CosNotification::EventTypeSeq removed )
00042 raises ( InvalidEventType );
00043
00044 };
00045
00049 interface NotifySubscribe
00050 {
00059 void subscription_change(
00060 in CosNotification::EventTypeSeq added,
00061 in CosNotification::EventTypeSeq removed )
00062 raises ( InvalidEventType );
00063
00064 };
00065
00069 interface PushConsumer :
00070 NotifyPublish,
00071 CosEventComm::PushConsumer
00072 {
00073 };
00074
00078 interface PullConsumer :
00079 NotifyPublish,
00080 CosEventComm::PullConsumer
00081 {
00082 };
00083
00087 interface PullSupplier :
00088 NotifySubscribe,
00089 CosEventComm::PullSupplier
00090 {
00091 };
00092
00096 interface PushSupplier :
00097 NotifySubscribe,
00098 CosEventComm::PushSupplier
00099 {
00100 };
00101
00105 interface StructuredPushConsumer : NotifyPublish
00106 {
00112 void push_structured_event(
00113 in CosNotification::StructuredEvent notification)
00114 raises(CosEventComm::Disconnected);
00115
00119 void disconnect_structured_push_consumer();
00120
00121 };
00122
00126 interface StructuredPullConsumer : NotifyPublish
00127 {
00131 void disconnect_structured_pull_consumer();
00132 };
00133
00137 interface StructuredPullSupplier : NotifySubscribe
00138 {
00144 CosNotification::StructuredEvent pull_structured_event()
00145 raises(CosEventComm::Disconnected);
00146
00154 CosNotification::StructuredEvent try_pull_structured_event(
00155 out boolean has_event)
00156 raises(CosEventComm::Disconnected);
00157
00161 void disconnect_structured_pull_supplier();
00162
00163 };
00164
00168 interface StructuredPushSupplier : NotifySubscribe
00169 {
00173 void disconnect_structured_push_supplier();
00174 };
00175
00179 interface SequencePushConsumer : NotifyPublish
00180 {
00186 void push_structured_events(
00187 in CosNotification::EventBatch notifications)
00188 raises(CosEventComm::Disconnected);
00189
00193 void disconnect_sequence_push_consumer();
00194
00195 };
00196
00200 interface SequencePullConsumer : NotifyPublish
00201 {
00205 void disconnect_sequence_pull_consumer();
00206 };
00207
00211 interface SequencePullSupplier : NotifySubscribe
00212 {
00220 CosNotification::EventBatch pull_structured_events(
00221 in long max_number )
00222 raises(CosEventComm::Disconnected);
00223
00233 CosNotification::EventBatch try_pull_structured_events(
00234 in long max_number,
00235 out boolean has_event)
00236 raises(CosEventComm::Disconnected);
00237
00241 void disconnect_sequence_pull_supplier();
00242
00243 };
00244
00248 interface SequencePushSupplier : NotifySubscribe
00249 {
00253 void disconnect_sequence_push_supplier();
00254 };
00255
00256 };
00257
00258 #endif