// $Id$ // ========================================================================== // // = LIBRARY // orbsvcs // // = FILENAME // CosNotifyComm.idl // // = DESCRIPTION // Part of the Notification Service // // = AUTHOR // Pradeep Gore // // ========================================================================== #ifndef _COS_NOTIFY_COMM_IDL_ #define _COS_NOTIFY_COMM_IDL_ #pragma prefix "omg.org" #include "CosNotification.idl" #include "CosEventComm.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 /* _COS_NOTIFY_COMM_IDL_ */