aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cosNotification/src/CosNotifyComm.idl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cosNotification/src/CosNotifyComm.idl')
-rw-r--r--lib/cosNotification/src/CosNotifyComm.idl83
1 files changed, 83 insertions, 0 deletions
diff --git a/lib/cosNotification/src/CosNotifyComm.idl b/lib/cosNotification/src/CosNotifyComm.idl
new file mode 100644
index 0000000000..f0386f0982
--- /dev/null
+++ b/lib/cosNotification/src/CosNotifyComm.idl
@@ -0,0 +1,83 @@
+#ifndef _COS_NOTIFYCOMM_IDL_
+#define _COS_NOTIFYCOMM_IDL_
+
+#pragma prefix "omg.org"
+
+
+#include<CosNotification.idl>
+
+module CosNotifyComm {
+ exception InvalidEventType { CosNotification::EventType type; };
+
+ interface NotifyPublish {
+ void offer_change (in CosNotification::EventTypeSeq added,
+ in CosNotification::EventTypeSeq removed)
+ raises (InvalidEventType);
+ }; // NotifyPublish
+
+ interface NotifySubscribe {
+ void subscription_change(in CosNotification::EventTypeSeq added,
+ in CosNotification::EventTypeSeq removed)
+ raises (InvalidEventType);
+ }; // NotifySubscribe
+
+ interface PushConsumer : NotifyPublish, CosEventComm::PushConsumer { }; // PushConsumer
+
+ interface PullConsumer : NotifyPublish, CosEventComm::PullConsumer { }; // PullConsumer
+
+ interface PullSupplier : NotifySubscribe, CosEventComm::PullSupplier { }; // PullSupplier
+
+ interface PushSupplier : NotifySubscribe, CosEventComm::PushSupplier { };
+
+ interface StructuredPushConsumer : NotifyPublish {
+ void push_structured_event(in CosNotification::StructuredEvent notification)
+ raises(CosEventComm::Disconnected);
+
+ void disconnect_structured_push_consumer();
+ }; // StructuredPushConsumer
+
+ interface StructuredPullConsumer : NotifyPublish {
+ void disconnect_structured_pull_consumer();
+ }; // StructuredPullConsumer
+
+ interface StructuredPullSupplier : NotifySubscribe {
+ CosNotification::StructuredEvent pull_structured_event()
+ raises(CosEventComm::Disconnected);
+
+ CosNotification::StructuredEvent try_pull_structured_event(out boolean has_event)
+ raises(CosEventComm::Disconnected);
+
+ void disconnect_structured_pull_supplier();
+ }; // StructuredPullSupplier
+
+ interface StructuredPushSupplier : NotifySubscribe {
+ void disconnect_structured_push_supplier();
+ }; // StructuredPushSupplier
+
+ interface SequencePushConsumer : NotifyPublish {
+ void push_structured_events(in CosNotification::EventBatch notifications)
+ raises(CosEventComm::Disconnected);
+
+ void disconnect_sequence_push_consumer();
+ }; // SequencePushConsumer
+
+ interface SequencePullConsumer : NotifyPublish {
+ void disconnect_sequence_pull_consumer();
+ }; // SequencePullConsumer
+
+ interface SequencePullSupplier : NotifySubscribe {
+ CosNotification::EventBatch pull_structured_events(in long max_number)
+ raises(CosEventComm::Disconnected);
+ CosNotification::EventBatch try_pull_structured_events(in long max_number, out boolean has_event)
+ raises(CosEventComm::Disconnected);
+
+ void disconnect_sequence_pull_supplier();
+ }; // SequencePullSupplier
+
+ interface SequencePushSupplier : NotifySubscribe {
+ void disconnect_sequence_push_supplier();
+ }; // SequencePushSupplier
+}; // CosNotifyComm
+
+#endif /* ifndef _COS_NOTIFYCOMM_IDL_ */
+