TAO_RTEvent  2.2.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
TAO_EC_ProxyPushConsumer Class Referenceabstract

ProxyPushConsumer. More...

#include <EC_ProxyConsumer.h>

Inheritance diagram for TAO_EC_ProxyPushConsumer:
Inheritance graph
Collaboration diagram for TAO_EC_ProxyPushConsumer:
Collaboration graph

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... More...
 
virtual ~TAO_EC_ProxyPushConsumer (void)
 destructor... More...
 
virtual void activate (RtecEventChannelAdmin::ProxyPushConsumer_ptr &proxy)=0
 Activate in the POA. More...
 
virtual void deactivate (void)
 Deactivate from the POA. More...
 
virtual void disconnect_push_consumer ()=0
 Disconnect this from. More...
 
CORBA::Boolean is_connected (void) const
 Return false if no supplier is connected... More...
 
RtecEventComm::PushSupplier_ptr supplier (void) const
 
const
RtecEventChannelAdmin::SupplierQOS
publications (void) const
 The QoS (subscription) used to connect to the EC. More...
 
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. More...
 
const
RtecEventChannelAdmin::SupplierQOS
publications_i (void) const
 
CORBA::ULong _incr_refcnt (void)
 Increment and decrement the reference count. More...
 
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(). More...
 
TAO_EC_Supplier_Filterfilter_i (void) const
 Return the current filter, assumes the locks are held. More...
 
void cleanup_i (void)
 Release the filter and the supplier. More...
 

Protected Attributes

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

Private Member Functions

virtual void shutdown_hook (void)
 Template method hooks. More...
 
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_ProxyPushSupplier supplier)
virtual

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

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::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_ProxyPushSupplier supplier)
virtual
void TAO_EC_ProxyPushConsumer::disconnected ( TAO_EC_ProxyPushConsumer consumer)
virtual
TAO_EC_Supplier_Filter * TAO_EC_ProxyPushConsumer::filter_i ( void  ) const
protected

Return the current filter, assumes the locks are held.

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

Return false if no supplier is connected...

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

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

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_ProxyPushSupplier supplier)
virtual
void TAO_EC_ProxyPushConsumer::reconnected ( TAO_EC_ProxyPushConsumer consumer)
virtual
void TAO_EC_ProxyPushConsumer::refcount_zero_hook ( void  )
privatevirtual
void TAO_EC_ProxyPushConsumer::shutdown ( void  )
virtual

The event channel is shutting down.

void TAO_EC_ProxyPushConsumer::shutdown_hook ( void  )
privatevirtual

Template method hooks.

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

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

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.

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

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