TAO_EC_ProxyPushConsumer Class Reference

ProxyPushConsumer. More...

#include <EC_ProxyConsumer.h>

Inheritance diagram for TAO_EC_ProxyPushConsumer:

Inheritance graph
Collaboration diagram for TAO_EC_ProxyPushConsumer:

Collaboration graph
List of all members.

Public Types

typedef RtecEventChannelAdmin::ProxyPushConsumer Interface
typedef RtecEventChannelAdmin::ProxyPushConsumer_var _var_type
typedef RtecEventChannelAdmin::ProxyPushConsumer_ptr _ptr_type

Public Member Functions

 TAO_EC_ProxyPushConsumer (TAO_EC_Event_Channel_Base *event_channel)
virtual ~TAO_EC_ProxyPushConsumer (void)
virtual void disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL)=0
 Disconnect this from.
CORBA::Boolean is_connected (void) const
 Return 0 if no supplier is connected...
RtecEventComm::PushSupplier_ptr supplier (void) const
const RtecEventChannelAdmin::SupplierQOSpublications (void) const
 The QoS (subscription) used to connect to the EC.
CORBA::Boolean supplier_non_existent (CORBA::Boolean_out disconnected ACE_ENV_ARG_DECL)
virtual void connected (TAO_EC_ProxyPushSupplier *supplier ACE_ENV_ARG_DECL)
virtual void reconnected (TAO_EC_ProxyPushSupplier *supplier ACE_ENV_ARG_DECL)
virtual void disconnected (TAO_EC_ProxyPushSupplier *supplier ACE_ENV_ARG_DECL)
virtual void connected (TAO_EC_ProxyPushConsumer *consumer ACE_ENV_ARG_DECL)
virtual void reconnected (TAO_EC_ProxyPushConsumer *consumer ACE_ENV_ARG_DECL)
virtual void disconnected (TAO_EC_ProxyPushConsumer *consumer ACE_ENV_ARG_DECL)
virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
 The event channel is shutting down.
const RtecEventChannelAdmin::SupplierQOSpublications_i (void) const
CORBA::ULong _incr_refcnt (void)
 Increment and decrement the reference count.
CORBA::ULong _decr_refcnt (void)

Protected Member Functions

void supplier (RtecEventComm::PushSupplier_ptr supplier)
void supplier_i (RtecEventComm::PushSupplier_ptr supplier)
CORBA::Boolean is_connected_i (void) const
 The private version (without locking) of is_connected().
TAO_EC_Supplier_Filterfilter_i (void) const
 Return the current filter, assumes the locks are held.
void cleanup_i (void)
 Release the filter and the supplier.

Protected Attributes

 The supplier admin, used for activation and memory managment.
 The locking strategy.
CORBA::ULong refcount_
 The reference count.
RtecEventComm::PushSupplier_var supplier_
 The supplier....
int connected_
RtecEventChannelAdmin::SupplierQOS qos_
 The publication and QoS information...
PortableServer::POA_var default_POA_
 Store the default POA.
 The strategy to do filtering close to the supplier.

Private Member Functions

virtual void shutdown_hook (ACE_ENV_SINGLE_ARG_DECL)
 Template method hooks.
virtual void refcount_zero_hook (void)


class TAO_EC_ProxyPushConsumer_Guard

Detailed Description


Implement the RtecEventChannelAdmin::ProxyPushConsumer interface, remember that this class is used to communicate with a PushSupplier, so, in effect, this is the ambassador for a supplier inside the event channel.

Memory Management

It makes a copy of the SupplierQOS and the supplier object reference. It uses bind/unbind to control the lifetime of the Supplier_Filter object. The object commits suicide when disconnect_push_consumer() is called.


No provisions for locking, access must be serialized externally.

Member Typedef Documentation

typedef RtecEventChannelAdmin::ProxyPushConsumer_ptr TAO_EC_ProxyPushConsumer::_ptr_type

typedef RtecEventChannelAdmin::ProxyPushConsumer_var TAO_EC_ProxyPushConsumer::_var_type

typedef RtecEventChannelAdmin::ProxyPushConsumer TAO_EC_ProxyPushConsumer::Interface

Constructor & Destructor Documentation

TAO_EC_ProxyPushConsumer::TAO_EC_ProxyPushConsumer ( TAO_EC_Event_Channel_Base event_channel  ) 


TAO_EC_ProxyPushConsumer::~TAO_EC_ProxyPushConsumer ( void   )  [virtual]


Member Function Documentation

CORBA::ULong TAO_EC_ProxyPushConsumer::_decr_refcnt ( void   ) 

CORBA::ULong TAO_EC_ProxyPushConsumer::_incr_refcnt ( void   ) 

Increment and decrement the reference count.

void TAO_EC_ProxyPushConsumer::cleanup_i ( void   )  [protected]

Release the filter and the supplier.

virtual void TAO_EC_ProxyPushConsumer::connected ( TAO_EC_ProxyPushConsumer *consumer  ACE_ENV_ARG_DECL  )  [virtual]

Usually implemented as no-ops, but some configurations may require this methods.

virtual void TAO_EC_ProxyPushConsumer::connected ( TAO_EC_ProxyPushSupplier *supplier  ACE_ENV_ARG_DECL  )  [virtual]

Concrete implementations can use this methods to keep track of the consumers interested in this events.

virtual void TAO_EC_ProxyPushConsumer::disconnect_push_consumer ( ACE_ENV_SINGLE_ARG_DECL   )  [pure virtual]

Disconnect this from.

virtual void TAO_EC_ProxyPushConsumer::disconnected ( TAO_EC_ProxyPushConsumer *consumer  ACE_ENV_ARG_DECL  )  [virtual]

virtual void TAO_EC_ProxyPushConsumer::disconnected ( TAO_EC_ProxyPushSupplier *supplier  ACE_ENV_ARG_DECL  )  [virtual]

ACE_INLINE TAO_EC_Supplier_Filter * TAO_EC_ProxyPushConsumer::filter_i ( void   )  const [protected]

Return the current filter, assumes the locks are held.

ACE_INLINE CORBA::Boolean TAO_EC_ProxyPushConsumer::is_connected ( void   )  const

Return 0 if no supplier is connected...

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE CORBA::Boolean TAO_EC_ProxyPushConsumer::is_connected_i ( void   )  const [protected]

The private version (without locking) of is_connected().

ACE_INLINE const RtecEventChannelAdmin::SupplierQOS & TAO_EC_ProxyPushConsumer::publications ( void   )  const

The QoS (subscription) used to connect to the EC.

ACE_INLINE const RtecEventChannelAdmin::SupplierQOS & TAO_EC_ProxyPushConsumer::publications_i ( void   )  const

The QoS (subscription) used to connect to the EC, assumes the locks are held, use with care!

virtual void TAO_EC_ProxyPushConsumer::reconnected ( TAO_EC_ProxyPushConsumer *consumer  ACE_ENV_ARG_DECL  )  [virtual]

virtual void TAO_EC_ProxyPushConsumer::reconnected ( TAO_EC_ProxyPushSupplier *supplier  ACE_ENV_ARG_DECL  )  [virtual]

void TAO_EC_ProxyPushConsumer::refcount_zero_hook ( void   )  [private, virtual]

virtual void TAO_EC_ProxyPushConsumer::shutdown ( ACE_ENV_SINGLE_ARG_DECL_NOT_USED   )  [virtual]

The event channel is shutting down.

virtual void TAO_EC_ProxyPushConsumer::shutdown_hook ( ACE_ENV_SINGLE_ARG_DECL   )  [private, virtual]

Template method hooks.

ACE_INLINE void TAO_EC_ProxyPushConsumer::supplier ( RtecEventComm::PushSupplier_ptr  supplier  )  [protected]

Set the supplier, used by some implementations to change the policies used when invoking operations on the supplier.

ACE_INLINE RtecEventComm::PushSupplier_ptr TAO_EC_ProxyPushConsumer::supplier ( void   )  const

Return the consumer object reference. It returns nil() if it has not connected yet.

ACE_INLINE void TAO_EC_ProxyPushConsumer::supplier_i ( RtecEventComm::PushSupplier_ptr  supplier  )  [protected]

CORBA::Boolean TAO_EC_ProxyPushConsumer::supplier_non_existent ( CORBA::Boolean_out disconnected  ACE_ENV_ARG_DECL  ) 

Invoke the _non_existent() pseudo-operation on the supplier. If it is disconnected then it returns true and sets the <disconnected> flag.

Friends And Related Function Documentation

friend class TAO_EC_ProxyPushConsumer_Guard [friend]

Member Data Documentation

int TAO_EC_ProxyPushConsumer::connected_ [protected]

If the flag is not zero then we are connected, notice that the supplier can be nil.

PortableServer::POA_var TAO_EC_ProxyPushConsumer::default_POA_ [protected]

Store the default POA.

TAO_EC_Event_Channel_Base* TAO_EC_ProxyPushConsumer::event_channel_ [protected]

The supplier admin, used for activation and memory managment.

TAO_EC_Supplier_Filter* TAO_EC_ProxyPushConsumer::filter_ [protected]

The strategy to do filtering close to the supplier.

ACE_Lock* TAO_EC_ProxyPushConsumer::lock_ [protected]

The locking strategy.

RtecEventChannelAdmin::SupplierQOS TAO_EC_ProxyPushConsumer::qos_ [protected]

The publication and QoS information...

CORBA::ULong TAO_EC_ProxyPushConsumer::refcount_ [protected]

The reference count.

RtecEventComm::PushSupplier_var TAO_EC_ProxyPushConsumer::supplier_ [protected]

The supplier....

The documentation for this class was generated from the following files:
Generated on Tue Nov 21 09:55:15 2006 for TAO_RTEvent by  doxygen 1.4.7-1