Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

CosNotifyComm.idl

Go to the documentation of this file.
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 */