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 }; // NotifyPublish 00045 00049 interface NotifySubscribe 00050 { 00059 void subscription_change( 00060 in CosNotification::EventTypeSeq added, 00061 in CosNotification::EventTypeSeq removed ) 00062 raises ( InvalidEventType ); 00063 00064 }; // NotifySubscribe 00065 00069 interface PushConsumer : 00070 NotifyPublish, 00071 CosEventComm::PushConsumer 00072 { 00073 }; // PushConsumer 00074 00078 interface PullConsumer : 00079 NotifyPublish, 00080 CosEventComm::PullConsumer 00081 { 00082 }; // PullConsumer 00083 00087 interface PullSupplier : 00088 NotifySubscribe, 00089 CosEventComm::PullSupplier 00090 { 00091 }; // PullSupplier 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 }; // StructuredPushConsumer 00122 00126 interface StructuredPullConsumer : NotifyPublish 00127 { 00131 void disconnect_structured_pull_consumer(); 00132 }; // StructuredPullConsumer 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 }; // StructuredPullSupplier 00164 00168 interface StructuredPushSupplier : NotifySubscribe 00169 { 00173 void disconnect_structured_push_supplier(); 00174 }; // StructuredPushSupplier 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 }; // SequencePushConsumer 00196 00200 interface SequencePullConsumer : NotifyPublish 00201 { 00205 void disconnect_sequence_pull_consumer(); 00206 }; // SequencePullConsumer 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 }; // SequencePullSupplier 00244 00248 interface SequencePushSupplier : NotifySubscribe 00249 { 00253 void disconnect_sequence_push_supplier(); 00254 }; // SequencePushSupplier 00255 00256 }; // CosNotifyComm 00257 00258 #endif /* COSNOTIFYCOMM_IDL */
![]()