blob: 33df3d7d7d29ca874363968b728690cad3716f9b [file] [log] [blame]
/**
* This module is taken from the standard CORBA Notification Service
* 1.1, as described in:
*
* https://www.omg.org/spec/NOT/1.1/
*
* The idl was extracted from the following PDF:
* formal/04-10-13
*/
#ifndef _COS_NOTIFY_COMM_IDL_
#define _COS_NOTIFY_COMM_IDL_
#include "CosNotification.idl"
#include "CosEventComm.idl"
#pragma prefix "omg.org"
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_ */