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 false 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....
bool 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_ptr TAO_EC_ProxyPushConsumer::_ptr_type

typedef RtecEventChannelAdmin::ProxyPushConsumer_var TAO_EC_ProxyPushConsumer::_var_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

CORBA::ULong TAO_EC_ProxyPushConsumer::_decr_refcnt ( void   ) 

CORBA::ULong TAO_EC_ProxyPushConsumer::_incr_refcnt ( void   ) 

Increment and decrement the reference count.

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::cleanup_i ( void   )  [protected]

Release the filter and the supplier.

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

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

void TAO_EC_ProxyPushConsumer::disconnected ( TAO_EC_ProxyPushSupplier supplier  )  [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 false 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().

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

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!

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

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

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

void TAO_EC_ProxyPushConsumer::shutdown ( void   )  [virtual]

The event channel is shutting down.

void TAO_EC_ProxyPushConsumer::shutdown_hook ( void   )  [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  ) 

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

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

Store the default POA.

The supplier admin, used for activation and memory managment.

The strategy to do filtering close to the supplier.

The locking strategy.

The publication and QoS information...

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 Mon Feb 9 21:02:34 2009 for TAO_RTEvent by  doxygen 1.5.8