00001
00002
00003
00004 #ifndef _COS_NOTIFY_COMM_IDL_
00005 #define _COS_NOTIFY_COMM_IDL_
00006
00007
00008
00009 #pragma prefix "omg.org"
00010
00011 #include <CosNotification.idl>
00012 #include <CosEventComm.idl>
00013
00014 module CosNotifyComm {
00015
00016 exception InvalidEventType { CosNotification::EventType type; };
00017
00018 interface NotifyPublish {
00019
00020 void offer_change (
00021 in CosNotification::EventTypeSeq added,
00022 in CosNotification::EventTypeSeq removed )
00023 raises ( InvalidEventType );
00024
00025 };
00026
00027 interface NotifySubscribe {
00028
00029 void subscription_change(
00030 in CosNotification::EventTypeSeq added,
00031 in CosNotification::EventTypeSeq removed )
00032 raises ( InvalidEventType );
00033
00034 };
00035
00036 interface PushConsumer :
00037 NotifyPublish,
00038 CosEventComm::PushConsumer {
00039 };
00040
00041 interface PullConsumer :
00042 NotifyPublish,
00043 CosEventComm::PullConsumer {
00044 };
00045
00046 interface PullSupplier :
00047 NotifySubscribe,
00048 CosEventComm::PullSupplier {
00049 };
00050
00051 interface PushSupplier :
00052 NotifySubscribe,
00053 CosEventComm::PushSupplier {
00054 };
00055
00056 interface StructuredPushConsumer : NotifyPublish {
00057
00058 void push_structured_event(
00059 in CosNotification::StructuredEvent notification)
00060 raises(CosEventComm::Disconnected);
00061
00062 void disconnect_structured_push_consumer();
00063
00064 };
00065
00066 interface StructuredPullConsumer : NotifyPublish {
00067 void disconnect_structured_pull_consumer();
00068 };
00069
00070 interface StructuredPullSupplier : NotifySubscribe {
00071
00072 CosNotification::StructuredEvent pull_structured_event()
00073 raises(CosEventComm::Disconnected);
00074
00075 CosNotification::StructuredEvent try_pull_structured_event(
00076 out boolean has_event)
00077 raises(CosEventComm::Disconnected);
00078
00079 void disconnect_structured_pull_supplier();
00080
00081 };
00082
00083 interface StructuredPushSupplier : NotifySubscribe {
00084 void disconnect_structured_push_supplier();
00085 };
00086
00087 interface SequencePushConsumer : NotifyPublish {
00088
00089 void push_structured_events(
00090 in CosNotification::EventBatch notifications)
00091 raises(CosEventComm::Disconnected);
00092
00093 void disconnect_sequence_push_consumer();
00094
00095 };
00096
00097 interface SequencePullConsumer : NotifyPublish {
00098 void disconnect_sequence_pull_consumer();
00099 };
00100
00101 interface SequencePullSupplier : NotifySubscribe {
00102
00103 CosNotification::EventBatch pull_structured_events(
00104 in long max_number )
00105 raises(CosEventComm::Disconnected);
00106
00107 CosNotification::EventBatch try_pull_structured_events(
00108 in long max_number,
00109 out boolean has_event)
00110 raises(CosEventComm::Disconnected);
00111
00112 void disconnect_sequence_pull_supplier();
00113
00114 };
00115
00116 interface SequencePushSupplier : NotifySubscribe {
00117 void disconnect_sequence_push_supplier();
00118 };
00119
00120 };
00121
00122 #endif