📄 coseventchanneladmin.idl
字号:
/**
* @file CosEventChannelAdmin.idl
*
* @brief Define the CosEventChannelAdmin module
*
* CosEventChannelAdmin.idl,v 1.7 2001/09/17 20:50:34 coryan Exp
*
* Described in CORBAservices: Common Object Services Specification,
* chapter 4.
*
* CosEventChannelAdmin Module, page 4-15 includes the following
* interfaces: ProxyPushConsumer, ProxyPullSupplier,
* ProxyPullConsumer, ProxyPushSupplier, ConsumerAdmin, SupplierAdmin,
* EventChannel
*
* The Event Service IDL can be downloaded from
* ftp://www.omg.org/pub/docs/formal/97-11-02.idl
*
* The complete specification is available from:
* http://www.omg.org/technology/documents/formal/event_service.htm
*
* @author Pradeep Gore <pradeep@cs.wustl.edu>
*/
#ifndef TAO_EVENTCHANNELADMIN_IDL
#define TAO_EVENTCHANNELADMIN_IDL
#include "CosEventComm.idl"
#pragma prefix "omg.org"
/**
* @namespace CosEventChannelAdmin
*
* @brief Define the interfaces implemented by providers of the CORBA
* Event Service.
*/
module CosEventChannelAdmin
{
/**
* @exception AlreadyConnected
*
* @brief Exception raised if the user tries to connect to an
* already connected proxy
*/
exception AlreadyConnected {};
/**
* @exception TypeError
*
* @brief Exception raised in Typed Event Services if there is a
* mismatch between the proxy and its peer (supplier or consumer.)
*/
exception TypeError {};
/**
* @interface ProxyPushConsumer
*
* @brief Interface used by push-style suppliers.
*
* The application can use the methods derived from
* CosEventComm::PushConsumer to disconnect from the Event Service
* and push events.
*/
interface ProxyPushConsumer : CosEventComm::PushConsumer
{
/// Connect a push-style supplier to the Event Service
/**
* Before pushing events into its Proxy the application must call
* the following operation.
*
* @param push_supplier Callback interface, invoked by the Event
* Service if it is destroyed while the push-style supplier
* is still connected. If the argument is nil the callback
* is not invoked.
* @throws AlreadyConnected if the operation is called a second
* time.
*/
void connect_push_supplier (in CosEventComm::PushSupplier push_supplier)
raises (AlreadyConnected);
};
/**
* @interface ProxyPushSupplier
*
* @brief Interface used by push-style consumers
*
* Push-style consumers used this interface to connect and
* disconnect from the Event Service.
*
* The disconnect_push_supplier() operation, derived from the
* CosEventEventComm::PushSupplier interface, is used to disconnect
* the ProxyPushSupplier and reclaim all resources attached to it
* from the Event Service.
*/
interface ProxyPushSupplier : CosEventComm::PushSupplier
{
/// Connect a push-style consumer to the Event Service.
/**
* The following operation must be invoked before the Event
* Service can deliver any events to the consumer.
*
* @param push_consumer The consumer, must be non-nil.
* @throws CORBA::BAD_PARAM if the consumer argument is nil.
* @throws AlreadyConnected if the operation is called a second
* time.
* @throws TypeError In Typed Event Services if the consumer does
* not match the expected type.
*/
void connect_push_consumer (in CosEventComm::PushConsumer push_consumer)
raises (AlreadyConnected, TypeError);
};
/**
* @interface ProxyPullSupplier
*
* @brief Interface used by pull-style consumers.
*
* Pull-style suppliers use this interface to connect and disconnect
* from the Event Service.
*
* The disconnect_pull_supplier() operation, derived from
* CosEventComm::PullSupplier, is used by the application to
* disconnect from the Event Service.
* The application can use the pull() and try_pull() operations to
* pull data from the Event Service.
*/
interface ProxyPullSupplier : CosEventComm::PullSupplier
{
/// Connect a pull consumer to the Event Service.
/**
* Applications cannot pull events before this operation is
* invoked.
*
* @param pull_consumer Callback interface used to inform the
* the application when the Event Service is destroyed. The
* argument can be nil.
* @throws AlreadyConnected if the operation is called a second
* time.
*/
void connect_pull_consumer (in CosEventComm::PullConsumer pull_consumer)
raises (AlreadyConnected);
};
/**
* @interface ProxyPullConsumer
*
* @brief Interface used by pull-style suppliers.
*
* Pull-style consumers use this interface to connect, disconnect
* and pull events from the Event Service.
*
* The disconnect_pull_consumer() operation, derived from
* CosEventEventComm::PullConsumer, is used to disconnect from the
* Event Service.
*/
interface ProxyPullConsumer : CosEventComm::PullConsumer
{
/// Connect a pull supplier to the Event Service.
/**
* The Event Service will not start pulling events until this
* operation is invoked.
*
* @param pull_supplier Callback interface used to (1) inform the
* application when the Event Service is destroyed, and (2) pull
* events from the application. The argument cannot be nil.
* @throws CORBA::BAD_PARAM if the pull_supplier argument is nil.
* @throws AlreadyConnected if the operation is called a second
* time.
* @throws TypeError In Typed Event Services if the consumer does
* not match the expected type.
*/
void connect_pull_supplier (in CosEventComm::PullSupplier pull_supplier)
raises (AlreadyConnected, TypeError);
};
/**
* @interface ConsumerAdmin
*
* @brief Abstract Factory used to create proxies for pull-style and
* push-style consumers.
*/
interface ConsumerAdmin
{
/// Create a new ProxyPushSupplier object.
ProxyPushSupplier obtain_push_supplier ();
/// Create a new ProxyPullSupplier object.
ProxyPullSupplier obtain_pull_supplier ();
};
/**
* @interface SupplierAdmin
*
* @brief Abstract Factory used to create proxies for pull-style and
* push-style suppliers.
*/
interface SupplierAdmin
{
/// Create a new ProxyPushConsumer object.
ProxyPushConsumer obtain_push_consumer ();
/// Create a new ProxyPullConsumer object.
ProxyPullConsumer obtain_pull_consumer ();
};
/**
* @interface EventChannel
*
* @brief Main interface for the Event Service.
*/
interface EventChannel
{
/// Obtain a ConsumerAdmin interface for this EventChannel
/**
* Normally a single EventChannel provides a single ConsumerAdmin,
* but advanced ECs, for example, those based in the
* CosNotification service, can provide multiple ConsumerAdmin
* interfaces.
*/
ConsumerAdmin for_consumers ();
/// Obtain a SupplierAdmin interface for this EventChannel
/**
* Normally a single EventChannel provides a single SupplierAdmin,
* but advanced ECs, for example, those based in the
* CosNotification service, can provide multiple SupplierAdmin
* interfaces.
*/
SupplierAdmin for_suppliers ();
/// Destroy the EventChannel
/**
* Calling this operation destroys the EventChannel, its
* ConsumerAdmin and SupplierAdmin interfaces as well as the
* proxies obtained from those.
* Any consumers or suppliers still connected are notified of the
* destruction. In some cases, the process running the
* EventChannel is terminated too.
*/
void destroy ();
};
};
#pragma prefix ""
#endif /* TAO_EVENTCHANNELADMIN_IDL */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -