Event Service
Summary by Peter Jacobs
Implementation by Tawee Pimsarn
This review of the CORBA Event Service contains a summary and an implementation.
Summary
The OrbixEvents Programmer’s Guide from IONA Technologies PLC was used to prepare this summary.
The guide is available from IONA’s site at http://www.iona.com or by downloading it directly in Adobe Acrobat Reader format.
Summary Contents
- Communicating Indirectly
- Event Transfer And Communication
- Event Example
- Programming Interface
- Untyped Push
- Untyped Pull
- Typed Push
- Typed Pull
Typed Push
Like untyped communication, four IDL interfaces support connection to and disconnection from the event channel for the Push method:
- PushSupplier
- TypedPushConsumer
- TypedProxyPushConsumer
- ProxyPushSupplier
The PushSupplier and TypedProxyPushConsumer interfaces allow suppliers to supply events to a channel, and TypedPushConsumer and ProxyPushSupplier allow consumers to receive events from a channel.
A typed push supplier initiates a connection to an event channel by obtaining a reference to a TypedProxyPushConsumer object in the event channel. The supplier invokes the connect_push_supplier() operation on the TypedProxyPushConsumer object, passing a reference to an object of type PushSupplier as a parameter.
 |
Typed push supplier and push consumer connect to event channel. |
The initial reference to TypedProxyPushConsumer is obtained through event channel administration steps. First, a reference to a TypedEventChannel object in the event channel must be obtained. Typically, this reference is available through the CORBA Naming Service. A for_suppliers() operation is then invoked on the TypedEventChannel and a reference to an object of type TypedSupplierAdmin is returned. The push supplier then invokes the obtain_typed_push_consumer() operation on TypedSupplierAdmin to return a reference to TypedProxyPushConsumer.
A typed push consumer connects to an event channel by first obtaining a reference to a ProxyPushSupplier object in the event channel. It then registers with the channel by invoking the connect_push_consumer() with a parameter of type TypedPushConsumer on the ProxyPushSupplier.
Event channel administration steps provide the reference to ProxyPushSupplier. After a reference to a TypedEventChannel object is obtained, a for_consumers() operation is invoked on TypedEventChannel to receive a reference to an object of type TypedConsumerAdmin. An obtain_typed_push_supplier() is then invoked on TypedConsumerAdmin for the ProxyPushSupplier reference.
When typed events are transferred through the event channel using Push, the TypedProxyPushConsumer is of a type agreed on by the supplier and the event channel. The agreement is established when TypedProxyPushConsumer is set up during event channel administration.
 |
Typed push transfer through event channel. |
Events are transferred by the supplier by invoking the get_typed_consumer() operation on the TypedProxyPushConsumer object. get_typed_consumer() returns an object reference of CORBA::Object which supports the interface set up for TypedProxyPushConsumer. The supplier must further narrow this to a reference of an object type that supplies events. Events are then supplied by invoking operations defined in the narrowed reference on the object reference returned by get_typed_consumer().
Summary Contents
- Communicating Indirectly
- Event Transfer And Communication
- Event Example
- Programming Interface
- Untyped Push
- Untyped Pull
- Typed Push
- Typed Pull < Next