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.
There are a number of exceptions that can be returned from functions in this interface.
-record('AlreadyConnected', {}).
-record('Disconnected', {}).
These exceptions are defined in the file event_service.hrl.
Any object that possesses an object reference that supports the ProxyPullSupplier interface can perform the following operations:
connect_pull_consumer(Object, PullConsumer) -> Return
Object = #objrefPullConsumer = #objref of PullConsumer typeReturn = void 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 AlreadyConnected exception is raised.
disconnect_pull_supplier(Object) -> Return
Object = #objrefReturn = voidThis 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.
Object = #objrefReturn = any This operation blocks until the event data is available or the Disconnected
exception is raised. It returns the event data to the consumer.
Object = #objrefReturn = {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 a value of 0 and sets the data availability to
false. If the event communication has already been disconnected, the
Disconnected exception is raised.