📄 cosnotifychanneladmin.idl
字号:
#ifndef COSNOTIFYCHANNELADMIN_IDL #define COSNOTIFYCHANNELADMIN_IDL#include <CosEventComm.idl>#include <CosEventChannelAdmin.idl>#include <CosNotification.idl>#include <CosNotifyFilter.idl>/** * CORBA Common Object Services: Notification Service. * <p> * The detailed specification is available from the * <a href="http://www.omg.org">Object Managament Group</a>. * * @author OMG * @version Version 1.0 */#pragma prefix "omg.org"module CosNotifyChannelAdmin{ /** * Exception used to indicate that a connection is already active. */ exception ConnectionAlreadyActive {}; /** * Exception used to indicate that a connection is already inactive. */ exception ConnectionAlreadyInactive {}; /** * Exception used to indicate that a proxy is not connected. */ exception NotConnected {}; // Forward declarations interface ConsumerAdmin; interface SupplierAdmin; interface EventChannel; interface EventChannelFactory; /** * Enumeration of proxy types supported by notification service. */ enum ProxyType { PUSH_ANY, PULL_ANY, PUSH_STRUCTURED, PULL_STRUCTURED, PUSH_SEQUENCE, PULL_SEQUENCE, PUSH_TYPED, PULL_TYPED }; /** * Enumeration of modes for obtaining subscription or offered types. */ enum ObtainInfoMode { ALL_NOW_UPDATES_OFF, ALL_NOW_UPDATES_ON, NONE_NOW_UPDATES_OFF, NONE_NOW_UPDATES_ON }; /** * An interface for proxy consumers. */ interface ProxyConsumer : CosNotification::QoSAdmin, CosNotifyFilter::FilterAdmin { /** * The type of this proxy. */ readonly attribute ProxyType MyType; /** * The administration object that created this proxy. */ readonly attribute SupplierAdmin MyAdmin; /** * Get a list of event type names which represent the event types that * consumers connected to this channel are interested in receiving. * @parm <code>mode</code> - The mode of type retrieval. * @returns A sequence of event type names. */ CosNotification::EventTypeSeq obtain_subscription_types( in ObtainInfoMode mode ); /** * Validate whether or not this proxy can honour the specified * quality of service requirements. * @parm <code>required_qos</code> - Quality of service name-value * pairs which a client is interested in validating. * @parm <code>available_qos</code> - Quality of service settings that * this proxy can support in addition to the ones in the input sequence. * @raises UnsupportedQoS If any of the quality of service settings * in the input sequence could not be honoured. */ void validate_event_qos ( in CosNotification::QoSProperties required_qos, out CosNotification::NamedPropertyRangeSeq available_qos) raises (CosNotification::UnsupportedQoS); }; // ProxyConsumer /** * An interface for proxy suppliers. */ interface ProxySupplier : CosNotification::QoSAdmin, CosNotifyFilter::FilterAdmin { /** * The type of this proxy. */ readonly attribute ProxyType MyType; /** * The administration object that created this proxy. */ readonly attribute ConsumerAdmin MyAdmin; /** * A mapping filter which if a non-nil reference will be consulted * for resolving the priority of the event. */ attribute CosNotifyFilter::MappingFilter priority_filter; /** * A filter which if a non-nil reference will be consulted * for resolving the priority of the event. */ attribute CosNotifyFilter::MappingFilter lifetime_filter; /** * Get a list of event type names that this proxy can potentially * forward to its associated consumers. * @parm <code>mode</code> - The mode of type retrieval. * @returns A sequence of event type names. */ CosNotification::EventTypeSeq obtain_offered_types( in ObtainInfoMode mode ); /** * Validate whether or not this proxy can honour the specified * quality of service requirements. * @parm <code>required_qos</code> - Quality of service name-value * pairs which a client is interested in validating. * @parm <code>available_qos</code> - Quality of service settings that * this proxy can support in addition to the ones in the input sequence. * @raises UnsupportedQoS If any of the quality of service settings * in the input sequence could not be honoured. */ void validate_event_qos ( in CosNotification::QoSProperties required_qos, out CosNotification::NamedPropertyRangeSeq available_qos) raises (CosNotification::UnsupportedQoS); }; // ProxySupplier /** * An interface for proxy push consumers. */ interface ProxyPushConsumer : ProxyConsumer, CosNotifyComm::PushConsumer { /** * Connect an any type push supplier to this proxy. * @parm <code>push_supplier</code> - The <code>PushSupplier</code> * object reference. * @raises AlreadyConnected If this supplier is already connected. */ void connect_any_push_supplier ( in CosEventComm::PushSupplier push_supplier) raises(CosEventChannelAdmin::AlreadyConnected); }; // ProxyPushConsumer /** * An interface for structured proxy push consumers. */ interface StructuredProxyPushConsumer : ProxyConsumer, CosNotifyComm::StructuredPushConsumer { /** * Connect a structured type push supplier to this proxy. * @parm <code>push_supplier</code> - The <code>PushSupplier</code> * object reference. * @raises AlreadyConnected If this supplier is already connected. */ void connect_structured_push_supplier ( in CosNotifyComm::StructuredPushSupplier push_supplier) raises(CosEventChannelAdmin::AlreadyConnected); }; // StructuredProxyPushConsumer /** * An interface for sequence proxy push consumers. */ interface SequenceProxyPushConsumer : ProxyConsumer, CosNotifyComm::SequencePushConsumer { /** * Connect a sequence type push supplier to this proxy. * @parm <code>push_supplier</code> - The <code>PushSupplier</code> * object reference. * @raises AlreadyConnected If this supplier is already connected. */ void connect_sequence_push_supplier ( in CosNotifyComm::SequencePushSupplier push_supplier) raises(CosEventChannelAdmin::AlreadyConnected); }; // SequenceProxyPushConsumer /** * An interface for proxy pull suppliers. */ interface ProxyPullSupplier : ProxySupplier, CosNotifyComm::PullSupplier { /** * Connect an any type pull consumer to this proxy. * @parm <code>pull_consumer</code> - The <code>PullConsumer</code> * object reference. * @raises AlreadyConnected If this consumer is already connected. */ void connect_any_pull_consumer ( in CosEventComm::PullConsumer pull_consumer) raises(CosEventChannelAdmin::AlreadyConnected); }; // ProxyPullSupplier /** * An interface for structured proxy pull suppliers. */ interface StructuredProxyPullSupplier : ProxySupplier, CosNotifyComm::StructuredPullSupplier { /** * Connect a structured type pull consumer to this proxy. * @parm <code>pull_consumer</code> - The <code>PullConsumer</code> * object reference. * @raises AlreadyConnected If this consumer is already connected. */ void connect_structured_pull_consumer ( in CosNotifyComm::StructuredPullConsumer pull_consumer) raises(CosEventChannelAdmin::AlreadyConnected); }; // StructuredProxyPullSupplier /** * An interface for sequence proxy pull suppliers. */ interface SequenceProxyPullSupplier : ProxySupplier, CosNotifyComm::SequencePullSupplier { /** * Connect a sequence type pull consumer to this proxy. * @parm <code>pull_consumer</code> - The <code>PullConsumer</code> * object reference. * @raises AlreadyConnected If this consumer is already connected. */ void connect_sequence_pull_consumer ( in CosNotifyComm::SequencePullConsumer pull_consumer) raises(CosEventChannelAdmin::AlreadyConnected); }; // SequenceProxyPullSupplier /** * An interface for proxy pull consumers. */ interface ProxyPullConsumer : ProxyConsumer, CosNotifyComm::PullConsumer { /** * Connect an any type pull supplier to this proxy. * @parm <code>pull_supplier</code> - The <code>PullSupplier</code> * object reference. * @raises AlreadyConnected If this supplier is already connected. * @raises TypeError Illegal supplier type. */ void connect_any_pull_supplier ( in CosEventComm::PullSupplier pull_supplier) raises(CosEventChannelAdmin::AlreadyConnected, CosEventChannelAdmin::TypeError ); /** * Causes this proxy to stop pulling events from its supplier. * @raises ConnectionAlreadyInactive Proxy already stopped. * @raises NotConnected Proxy not connected. */ void suspend_connection() raises(ConnectionAlreadyInactive, NotConnected); /** * Causes this proxy to start pulling events from its supplier. * @raises ConnectionAlreadyActive Proxy already started. * @raises NotConnected Proxy not connected. */ void resume_connection() raises(ConnectionAlreadyActive, NotConnected); }; // ProxyPullConsumer /** * An interface for structured proxy pull consumers. */ interface StructuredProxyPullConsumer : ProxyConsumer, CosNotifyComm::StructuredPullConsumer { /** * Connect a structured type pull supplier to this proxy. * @parm <code>pull_supplier</code> - The <code>PullSupplier</code> * object reference. * @raises AlreadyConnected If this supplier is already connected. * @raises TypeError Illegal supplier type. */ void connect_structured_pull_supplier ( in CosNotifyComm::StructuredPullSupplier pull_supplier) raises(CosEventChannelAdmin::AlreadyConnected, CosEventChannelAdmin::TypeError ); /** * Causes this proxy to stop pulling events from its supplier. * @raises ConnectionAlreadyInactive Proxy already stopped. * @raises NotConnected Proxy not connected. */ void suspend_connection() raises(ConnectionAlreadyInactive, NotConnected); /** * Causes this proxy to start pulling events from its supplier. * @raises ConnectionAlreadyActive Proxy already started. * @raises NotConnected Proxy not connected. */ void resume_connection() raises(ConnectionAlreadyActive, NotConnected); }; // StructuredProxyPullConsumer /** * An interface for sequence proxy pull consumers. */ interface SequenceProxyPullConsumer : ProxyConsumer, CosNotifyComm::SequencePullConsumer { /** * Connect a sequence type pull supplier to this proxy. * @parm <code>pull_supplier</code> - The <code>PullSupplier</code> * object reference. * @raises AlreadyConnected If this supplier is already connected. * @raises TypeError Illegal supplier type. */ void connect_sequence_pull_supplier ( in CosNotifyComm::SequencePullSupplier pull_supplier) raises(CosEventChannelAdmin::AlreadyConnected, CosEventChannelAdmin::TypeError ); /** * Causes this proxy to stop pulling events from its supplier. * @raises ConnectionAlreadyInactive Proxy already stopped. * @raises NotConnected Proxy not connected. */ void suspend_connection() raises(ConnectionAlreadyInactive, NotConnected); /** * Causes this proxy to start pulling events from its supplier. * @raises ConnectionAlreadyActive</code> - Proxy already started. * @raises NotConnected Proxy not connected. */ void resume_connection() raises(ConnectionAlreadyActive, NotConnected); }; // SequenceProxyPullConsumer /** * An interface for proxy push suppliers. */ interface ProxyPushSupplier : ProxySupplier, CosNotifyComm::PushSupplier { /** * Connect an any type push consumer to this proxy. * @parm <code>push_consumer</code> - The <code>PushConsumer</code> * object reference. * @raises AlreadyConnected If this consumer is already connected. * @raises TypeError Illegal consumer type. */ void connect_any_push_consumer ( in CosEventComm::PushConsumer push_consumer) raises(CosEventChannelAdmin::AlreadyConnected, CosEventChannelAdmin::TypeError ); /** * Causes this proxy to stop sending events to its consumer. Note * that events will still be queued while the connection is suspended. * @raises ConnectionAlreadyInactive Proxy already stopped. * @raises NotConnected Proxy not connected. */ void suspend_connection() raises(ConnectionAlreadyInactive, NotConnected); /** * Causes this proxy to start sending events to its consumer. * All queued events will be forwarded to the consumers. * @raises ConnectionAlreadyActive Proxy already started. * @raises NotConnected Proxy not connected. */ void resume_connection() raises(ConnectionAlreadyActive, NotConnected); }; // ProxyPushSupplier /** * An interface for structured proxy push suppliers. */ interface StructuredProxyPushSupplier : ProxySupplier, CosNotifyComm::StructuredPushSupplier { /** * Connect a structured type push consumer to this proxy. * @parm <code>push_consumer</code> - The <code>PushConsumer</code> * object reference. * @raises AlreadyConnected If this consumer is already connected. * @raises TypeError Illegal consumer type. */ void connect_structured_push_consumer ( in CosNotifyComm::StructuredPushConsumer push_consumer) raises(CosEventChannelAdmin::AlreadyConnected, CosEventChannelAdmin::TypeError );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -