TAO_EC_ProxyPushConsumer Class Reference

ProxyPushConsumer. More...

#include <EC_ProxyConsumer.h>

Inheritance diagram for TAO_EC_ProxyPushConsumer:

Inheritance graph
[legend]
Collaboration diagram for TAO_EC_ProxyPushConsumer:

Collaboration graph
[legend]
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)
 constructor...
virtual ~TAO_EC_ProxyPushConsumer (void)
 destructor...
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)

Public Attributes

virtual void virtual activate(RtecEventChannelAdmin::ProxyPushConsumer_ptr
&proxy ACE_ENV_ARG_DECL) ACE_THROW_SPEC((CORBA voi 
deactivate )(ACE_ENV_SINGLE_ARG_DECL)
 Deactivate from the POA.

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

TAO_EC_Event_Channel_Baseevent_channel_
 The supplier admin, used for activation and memory managment.
ACE_Locklock_
 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.
TAO_EC_Supplier_Filterfilter_
 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)

Friends

class TAO_EC_ProxyPushConsumer_Guard

Detailed Description

ProxyPushConsumer.

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.

Locking

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  ) 
 

constructor...

TAO_EC_ProxyPushConsumer::~TAO_EC_ProxyPushConsumer void   )  [virtual]
 

destructor...


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.

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]
 

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...

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]
 

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.

void TAO_EC_ProxyPushConsumer::deactivate
 

Deactivate from the POA.

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 Wed Nov 23 16:18:52 2005 for TAO_RTEvent by  doxygen 1.4.5