org.jacorb.events

Class ProxyPullConsumerImpl

public class ProxyPullConsumerImpl extends ProxyPullConsumerPOA implements Runnable

Implementation of COSEventChannelAdmin interface; ProxyPullConsumer. This defines connect_pull_supplier() and disconnect_pull_consumer(). 2002/23/08 JFC OMG EventService Specification 1.1 page 2-7 states: "Registration is a two step process. An event-generating application first obtains a proxy consumer from a channel, then 'connects' to the proxy consumer by providing it with a supplier. ... The reason for the two step registration process..." Modifications to support the above have been made as well as to support section 2.1.5 "Disconnection Behavior" on page 2-4.

Author: Jeff Carlson Joerg v. Frantzius Rainer Lischetzki Gerald Brose $Id: ProxyPullConsumerImpl.java,v 1.10 2004/05/06 12:39:58 nicolas Exp $

Constructor Summary
protected ProxyPullConsumerImpl(EventChannelImpl ec, ORB orb, POA poa)
Constructor - gets called by the EventChannel
Method Summary
voidconnect_pull_supplier(PullSupplier pullSupplier)
ProxyPullConsumer Interface: As stated by the EventService specification 1.1 section 2.3.6: "If a ProxyPullSupplier is already connected to a PullConsumer, then the AlreadyConnected exception is raised." and "Implementations shall raise the CORBA standard BAD_PARAM exception if a nil object reference is passed to the connect_pull_supplier operation. and "An implementation of a ProxyPullConsumer may put additional requirements on the interface supported by the pull supplier.
voiddisconnect_pull_consumer()
See EventService v 1.1 specification section 2.1.4.
voidrun()
Start being a good PullConsumer and ask for loads of events.
POA_default_POA()
Override this method from the Servant baseclass.

Constructor Detail

ProxyPullConsumerImpl

protected ProxyPullConsumerImpl(EventChannelImpl ec, ORB orb, POA poa)
Constructor - gets called by the EventChannel

Method Detail

connect_pull_supplier

public void connect_pull_supplier(PullSupplier pullSupplier)
ProxyPullConsumer Interface: As stated by the EventService specification 1.1 section 2.3.6: "If a ProxyPullSupplier is already connected to a PullConsumer, then the AlreadyConnected exception is raised." and "Implementations shall raise the CORBA standard BAD_PARAM exception if a nil object reference is passed to the connect_pull_supplier operation. and "An implementation of a ProxyPullConsumer may put additional requirements on the interface supported by the pull supplier. If t he pull supplier does not meet those requirements, the ProxyPullConsumer raises the TypeError exception. (See section 2.5.2 on page 2-15 for an example)"

disconnect_pull_consumer

public void disconnect_pull_consumer()
See EventService v 1.1 specification section 2.1.4. 'disconnect_pull_consumer terminates the event communication; it releases resources used at the consumer to support event communication. Calling this causes the implementation to call disconnect_pull_supplier operation on the corresponding PullSupplier interface (if that iterface is known).' See EventService v 1.1 specification section 2.1.5. This method should adhere to the spec as it a) causes a call to the corresponding disconnect on the connected supplier, b) 'If a consumer or supplier has received a disconnect call and subsequently receives another disconnect call, it shall raise a CORBA::OBJECT_NOT_EXIST exception.

run

public void run()
Start being a good PullConsumer and ask for loads of events.

_default_POA

public POA _default_POA()
Override this method from the Servant baseclass. Fintan Bolton in his book "Pure CORBA" suggests that you override this method to avoid the risk that a servant object (like this one) could be activated by the wrong POA object.