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 activate (RtecEventChannelAdmin::ProxyPushConsumer_ptr &proxy)=0
 Activate in the POA.
virtual void deactivate (void)
 Deactivate from the POA.
virtual void disconnect_push_consumer ()=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::SupplierQOS
publications (void) const
 The QoS (subscription) used to connect to the EC.
CORBA::Boolean supplier_non_existent (CORBA::Boolean_out disconnected)
virtual void connected (TAO_EC_ProxyPushSupplier *supplier)
virtual void reconnected (TAO_EC_ProxyPushSupplier *supplier)
virtual void disconnected (TAO_EC_ProxyPushSupplier *supplier)
virtual void connected (TAO_EC_ProxyPushConsumer *consumer)
virtual void reconnected (TAO_EC_ProxyPushConsumer *consumer)
virtual void disconnected (TAO_EC_ProxyPushConsumer *consumer)
virtual void shutdown (void)
 The event channel is shutting down.
const
RtecEventChannelAdmin::SupplierQOS
publications_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

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 (void)
 Template method hooks.
virtual void refcount_zero_hook (void)
virtual PortableServer::ObjectId object_id (void)=0

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 TAO_EC_ProxyPushConsumer::Interface

typedef RtecEventChannelAdmin::ProxyPushConsumer_var TAO_EC_ProxyPushConsumer::_var_type

typedef RtecEventChannelAdmin::ProxyPushConsumer_ptr TAO_EC_ProxyPushConsumer::_ptr_type


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

virtual void TAO_EC_ProxyPushConsumer::activate ( RtecEventChannelAdmin::ProxyPushConsumer_ptr &  proxy  )  [pure virtual]

Activate in the POA.

Implemented in TAO_EC_Default_ProxyPushConsumer.

void TAO_EC_ProxyPushConsumer::deactivate ( void   )  [virtual]

Deactivate from the POA.

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

Disconnect this from.

Implemented in TAO_EC_Default_ProxyPushConsumer, and TAO_EC_TPC_ProxyPushConsumer.

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

Return 0 if no supplier is connected...

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 const RtecEventChannelAdmin::SupplierQOS & TAO_EC_ProxyPushConsumer::publications ( void   )  const

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

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

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

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

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

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

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

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

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

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

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

void TAO_EC_ProxyPushConsumer::shutdown ( void   )  [virtual]

The event channel is shutting down.

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!

CORBA::ULong TAO_EC_ProxyPushConsumer::_incr_refcnt ( void   ) 

Increment and decrement the reference count.

CORBA::ULong TAO_EC_ProxyPushConsumer::_decr_refcnt ( void   ) 

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 void TAO_EC_ProxyPushConsumer::supplier_i ( RtecEventComm::PushSupplier_ptr  supplier  )  [protected]

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 TAO_EC_Supplier_Filter * TAO_EC_ProxyPushConsumer::filter_i ( void   )  const [protected]

Return the current filter, assumes the locks are held.

void TAO_EC_ProxyPushConsumer::cleanup_i ( void   )  [protected]

Release the filter and the supplier.

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

Template method hooks.

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

virtual PortableServer::ObjectId TAO_EC_ProxyPushConsumer::object_id ( void   )  [private, pure virtual]

Implemented in TAO_EC_Default_ProxyPushConsumer.


Friends And Related Function Documentation

friend class TAO_EC_ProxyPushConsumer_Guard [friend]


Member Data Documentation

TAO_EC_Event_Channel_Base* TAO_EC_ProxyPushConsumer::event_channel_ [protected]

The supplier admin, used for activation and memory managment.

ACE_Lock* TAO_EC_ProxyPushConsumer::lock_ [protected]

The locking strategy.

CORBA::ULong TAO_EC_ProxyPushConsumer::refcount_ [protected]

The reference count.

RtecEventComm::PushSupplier_var TAO_EC_ProxyPushConsumer::supplier_ [protected]

The supplier....

int TAO_EC_ProxyPushConsumer::connected_ [protected]

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

RtecEventChannelAdmin::SupplierQOS TAO_EC_ProxyPushConsumer::qos_ [protected]

The publication and QoS information...

PortableServer::POA_var TAO_EC_ProxyPushConsumer::default_POA_ [protected]

Store the default POA.

TAO_EC_Supplier_Filter* TAO_EC_ProxyPushConsumer::filter_ [protected]

The strategy to do filtering close to the supplier.


The documentation for this class was generated from the following files:
Generated on Fri Dec 14 04:06:37 2007 for TAO_RTEvent by  doxygen 1.5.3-6