TAO_RTEvent 4.0.0
Loading...
Searching...
No Matches
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
[legend]
Collaboration diagram for TAO_EC_ProxyPushConsumer:
Collaboration graph
[legend]

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 ()
 destructor...
 
virtual void activate (RtecEventChannelAdmin::ProxyPushConsumer_ptr &proxy)=0
 Activate in the POA.
 
virtual void deactivate ()
 Deactivate from the POA.
 
virtual void disconnect_push_consumer ()=0
 Disconnect this from.
 
CORBA::Boolean is_connected () const
 Return false if no supplier is connected...
 
RtecEventComm::PushSupplier_ptr supplier () const
 
const RtecEventChannelAdmin::SupplierQOSpublications () 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 ()
 The event channel is shutting down.
 
const RtecEventChannelAdmin::SupplierQOSpublications_i () const
 
CORBA::ULong _incr_refcnt ()
 Increment and decrement the reference count.
 
CORBA::ULong _decr_refcnt ()
 

Protected Member Functions

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

Protected Attributes

TAO_EC_Event_Channel_Baseevent_channel_
 The supplier admin, used for activation and memory management.
 
ACE_Locklock_
 The locking strategy.
 
CORBA::ULong ec_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 ()
 Template method hooks.
 
virtual void refcount_zero_hook ()
 
virtual PortableServer::ObjectId object_id ()=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

◆ _ptr_type

typedef RtecEventChannelAdmin::ProxyPushConsumer_ptr TAO_EC_ProxyPushConsumer::_ptr_type

◆ _var_type

typedef RtecEventChannelAdmin::ProxyPushConsumer_var TAO_EC_ProxyPushConsumer::_var_type

◆ Interface

Constructor & Destructor Documentation

◆ TAO_EC_ProxyPushConsumer()

TAO_EC_ProxyPushConsumer::TAO_EC_ProxyPushConsumer ( TAO_EC_Event_Channel_Base * event_channel)

constructor...

◆ ~TAO_EC_ProxyPushConsumer()

TAO_EC_ProxyPushConsumer::~TAO_EC_ProxyPushConsumer ( )
virtual

destructor...

Member Function Documentation

◆ _decr_refcnt()

CORBA::ULong TAO_EC_ProxyPushConsumer::_decr_refcnt ( )

◆ _incr_refcnt()

CORBA::ULong TAO_EC_ProxyPushConsumer::_incr_refcnt ( )

Increment and decrement the reference count.

◆ activate()

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

Activate in the POA.

Implemented in TAO_EC_Default_ProxyPushConsumer.

◆ cleanup_i()

void TAO_EC_ProxyPushConsumer::cleanup_i ( )
protected

Release the filter and the supplier.

◆ connected() [1/2]

void TAO_EC_ProxyPushConsumer::connected ( TAO_EC_ProxyPushConsumer * consumer)
virtual

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

◆ connected() [2/2]

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.

◆ deactivate()

void TAO_EC_ProxyPushConsumer::deactivate ( )
virtual

Deactivate from the POA.

◆ disconnect_push_consumer()

virtual void TAO_EC_ProxyPushConsumer::disconnect_push_consumer ( )
pure virtual

Disconnect this from.

Implemented in TAO_EC_Default_ProxyPushConsumer, and TAO_EC_TPC_ProxyPushConsumer.

◆ disconnected() [1/2]

void TAO_EC_ProxyPushConsumer::disconnected ( TAO_EC_ProxyPushConsumer * consumer)
virtual

◆ disconnected() [2/2]

void TAO_EC_ProxyPushConsumer::disconnected ( TAO_EC_ProxyPushSupplier * supplier)
virtual

◆ filter_i()

TAO_EC_Supplier_Filter * TAO_EC_ProxyPushConsumer::filter_i ( ) const
protected

Return the current filter, assumes the locks are held.

◆ is_connected()

CORBA::Boolean TAO_EC_ProxyPushConsumer::is_connected ( ) const

Return false if no supplier is connected...

◆ is_connected_i()

CORBA::Boolean TAO_EC_ProxyPushConsumer::is_connected_i ( ) const
protected

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

◆ object_id()

virtual PortableServer::ObjectId TAO_EC_ProxyPushConsumer::object_id ( )
privatepure virtual

◆ publications()

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

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

◆ publications_i()

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

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

◆ reconnected() [1/2]

void TAO_EC_ProxyPushConsumer::reconnected ( TAO_EC_ProxyPushConsumer * consumer)
virtual

◆ reconnected() [2/2]

void TAO_EC_ProxyPushConsumer::reconnected ( TAO_EC_ProxyPushSupplier * supplier)
virtual

◆ refcount_zero_hook()

void TAO_EC_ProxyPushConsumer::refcount_zero_hook ( )
privatevirtual

◆ shutdown()

void TAO_EC_ProxyPushConsumer::shutdown ( )
virtual

The event channel is shutting down.

◆ shutdown_hook()

void TAO_EC_ProxyPushConsumer::shutdown_hook ( )
privatevirtual

Template method hooks.

◆ supplier() [1/2]

RtecEventComm::PushSupplier_ptr TAO_EC_ProxyPushConsumer::supplier ( ) const

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

◆ supplier() [2/2]

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.

◆ supplier_i()

void TAO_EC_ProxyPushConsumer::supplier_i ( RtecEventComm::PushSupplier_ptr supplier)
protected

◆ supplier_non_existent()

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 Symbol Documentation

◆ TAO_EC_ProxyPushConsumer_Guard

friend class TAO_EC_ProxyPushConsumer_Guard
friend

Member Data Documentation

◆ connected_

bool TAO_EC_ProxyPushConsumer::connected_
protected

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

◆ default_POA_

PortableServer::POA_var TAO_EC_ProxyPushConsumer::default_POA_
protected

Store the default POA.

◆ ec_refcount_

CORBA::ULong TAO_EC_ProxyPushConsumer::ec_refcount_
protected

The reference count.

◆ event_channel_

TAO_EC_Event_Channel_Base* TAO_EC_ProxyPushConsumer::event_channel_
protected

The supplier admin, used for activation and memory management.

◆ filter_

TAO_EC_Supplier_Filter* TAO_EC_ProxyPushConsumer::filter_
protected

The strategy to do filtering close to the supplier.

◆ lock_

ACE_Lock* TAO_EC_ProxyPushConsumer::lock_
protected

The locking strategy.

◆ qos_

RtecEventChannelAdmin::SupplierQOS TAO_EC_ProxyPushConsumer::qos_
protected

The publication and QoS information...

◆ supplier_

RtecEventComm::PushSupplier_var TAO_EC_ProxyPushConsumer::supplier_
protected

The supplier....


The documentation for this class was generated from the following files: