#ifndef _COS_NOTIFYCOMM_IDL_ #define _COS_NOTIFYCOMM_IDL_ #pragma prefix "omg.org" #include 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_ */