# CosEventChannelAdmin_ProxyPullSupplier

### MODULE

CosEventChannelAdmin_ProxyPullSupplier

### MODULE SUMMARY

This module implements a ProxyPullSupplier interface which acts as a middleman between pull consumer and the event channel.

### DESCRIPTION

The ProxyPullSupplier interface defines the second step for connecting pull consumers to the event channel. A proxy supplier is similar to a normal supplier, but includes an additional method for connecting a consumer to the proxy supplier.

To get access to all definitions, e.g., exceptions, include necessary `hrl` files by using:
`-include_lib("cosEvent/include/*.hrl").`

Any object that possesses an object reference that supports the ProxyPullSupplier interface can perform the following operations:

### EXPORTS

`connect_pull_consumer(Object, PullConsumer) -> Return`

Types:

`Object = #objref`
`PullConsumer = #objref of PullConsumer type`
`Return = ok | {'EXCEPTION', #'CosEventChannelAdmin_AlreadyConnected'{}}`

This operation connects PullConsumer object to the ProxyPullSupplier object. A nil object reference can be passed to this operation. If so a channel cannot invoke the disconnect_pull_consumer operation on the consumer; the consumer may be disconnected from the channel without being informed. If the ProxyPullSupplier is already connected to a PullConsumer, then the `CosEventChannelAdmin_AlreadyConnected` exception is raised.

`disconnect_pull_supplier(Object) -> Return`

Types:

`Object = #objref`
`Return = ok`

This operation disconnects proxy pull supplier from the event channel. It sends a notification about the loss of the connection to the pull consumer attached to it, unless nil object reference was passed at the connection time.

`pull(Object) -> Return`

Types:

`Object = #objref`
`Return = any`

This operation blocks until the event data is available or the `CosEventComm_Disconnected` exception is raised. It returns the event data to the consumer.

`try_pull(Object) -> Return`

Types:

`Object = #objref`
`Return = {any, bool()}`

This operation does not block: if the event data is available, it returns the event data and sets the data availability flag to true; otherwise it returns a long with an undefined value and sets the data availability to false. If the event communication has already been disconnected, the `CosEventComm_Disconnected` exception is raised.

### AUTHORS

support - support@erlang.ericsson.se

cosEvent 2.1
Copyright © 1991-2006 Ericsson AB