TAO_CosEvent 3.1.4
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
TAO_CEC_ProxyPushSupplier Class Reference

ProxyPushSupplier. More...

#include <CEC_ProxyPushSupplier.h>

Inheritance diagram for TAO_CEC_ProxyPushSupplier:
Inheritance graph
[legend]
Collaboration diagram for TAO_CEC_ProxyPushSupplier:
Collaboration graph
[legend]

Public Types

typedef CosEventChannelAdmin::ProxyPushSupplier_ptr _ptr_type
 
typedef CosEventChannelAdmin::ProxyPushSupplier_var _var_type
 

Public Member Functions

 TAO_CEC_ProxyPushSupplier (TAO_CEC_EventChannel *event_channel, const ACE_Time_Value &timeout)
 constructor...
 
virtual ~TAO_CEC_ProxyPushSupplier ()
 typed ec constructor
 
virtual void activate (CosEventChannelAdmin::ProxyPushSupplier_ptr &)
 Activate in the POA.
 
virtual void deactivate ()
 Deactivate from the POA.
 
CORBA::Boolean is_connected () const
 Return 0 if no consumer is connected...
 
CosEventComm::PushConsumer_ptr consumer () const
 
virtual void shutdown ()
 The event channel is shutting down.
 
virtual void push (const CORBA::Any &event)
 Internal methods to push an event to each consumer.
 
virtual void push_nocopy (CORBA::Any &event)
 
void push_to_consumer (const CORBA::Any &event)
 Internal methods to invoke a typed event to each consumer.
 
void reactive_push_to_consumer (const CORBA::Any &event)
 
CORBA::Boolean consumer_non_existent (CORBA::Boolean_out disconnected)
 
virtual void connect_push_consumer (CosEventComm::PushConsumer_ptr push_consumer)
 
virtual void disconnect_push_supplier ()
 
CORBA::ULong _incr_refcnt ()
 Increment and decrement the reference count.
 
CORBA::ULong _decr_refcnt ()
 
virtual PortableServer::POA_ptr _default_POA ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 

Protected Member Functions

void consumer (CosEventComm::PushConsumer_ptr consumer)
 
void consumer_i (CosEventComm::PushConsumer_ptr consumer)
 
CORBA::Boolean is_connected_i () const
 The private version (without locking) of is_connected().
 
void cleanup_i ()
 Release the child and the consumer.
 
CosEventComm::PushConsumer_ptr apply_policy (CosEventComm::PushConsumer_ptr c)
 
CORBA::Object_ptr apply_policy_obj (CORBA::Object_ptr c)
 

Private Attributes

TAO_CEC_EventChannelevent_channel_
 The Event Channel that owns this object.
 
ACE_Time_Value timeout_
 
ACE_Locklock_
 The Typed Event Channel that owns this object.
 
CORBA::ULong refcount_
 The reference count.
 
CosEventComm::PushConsumer_var consumer_
 
CosEventComm::PushConsumer_var nopolicy_consumer_
 The consumer without any policies applied.
 
PortableServer::POA_var default_POA_
 Store the default POA.
 

Detailed Description

ProxyPushSupplier.

Implement the CosEventChannelAdmin::ProxyPushSupplier interface, remember that this class is used to communicate with a PushConsumer, so, in effect, this is the ambassador for a consumer inside the event channel. = MEMORY MANAGEMENT It does not assume ownership of the TAO_CEC_Dispatching object. It makes a copy of the ConsumerQOS and the consumer object reference. = LOCKING Locking is strategized, the event channel acts as a factory for the locking strategies.

Member Typedef Documentation

◆ _ptr_type

typedef CosEventChannelAdmin::ProxyPushSupplier_ptr TAO_CEC_ProxyPushSupplier::_ptr_type

◆ _var_type

typedef CosEventChannelAdmin::ProxyPushSupplier_var TAO_CEC_ProxyPushSupplier::_var_type

Constructor & Destructor Documentation

◆ TAO_CEC_ProxyPushSupplier()

TAO_CEC_ProxyPushSupplier::TAO_CEC_ProxyPushSupplier ( TAO_CEC_EventChannel * event_channel,
const ACE_Time_Value & timeout )

constructor...

◆ ~TAO_CEC_ProxyPushSupplier()

TAO_CEC_ProxyPushSupplier::~TAO_CEC_ProxyPushSupplier ( )
virtual

typed ec constructor

destructor...

Member Function Documentation

◆ _add_ref()

void TAO_CEC_ProxyPushSupplier::_add_ref ( )
virtual

◆ _decr_refcnt()

CORBA::ULong TAO_CEC_ProxyPushSupplier::_decr_refcnt ( )

◆ _default_POA()

PortableServer::POA_ptr TAO_CEC_ProxyPushSupplier::_default_POA ( )
virtual

◆ _incr_refcnt()

CORBA::ULong TAO_CEC_ProxyPushSupplier::_incr_refcnt ( )

Increment and decrement the reference count.

◆ _remove_ref()

void TAO_CEC_ProxyPushSupplier::_remove_ref ( )
virtual

◆ activate()

void TAO_CEC_ProxyPushSupplier::activate ( CosEventChannelAdmin::ProxyPushSupplier_ptr & activated_proxy)
virtual

Activate in the POA.

◆ apply_policy()

CosEventComm::PushConsumer_ptr TAO_CEC_ProxyPushSupplier::apply_policy ( CosEventComm::PushConsumer_ptr c)
protected

Assigns the parameter to both consumer_ and nopolicy_consumer_, and applies policies (when appropriate) to consumer_.

◆ apply_policy_obj()

CORBA::Object_ptr TAO_CEC_ProxyPushSupplier::apply_policy_obj ( CORBA::Object_ptr c)
protected

◆ cleanup_i()

void TAO_CEC_ProxyPushSupplier::cleanup_i ( )
protected

Release the child and the consumer.

◆ connect_push_consumer()

void TAO_CEC_ProxyPushSupplier::connect_push_consumer ( CosEventComm::PushConsumer_ptr push_consumer)
virtual

◆ consumer() [1/2]

CosEventComm::PushConsumer_ptr TAO_CEC_ProxyPushSupplier::consumer ( ) const

Return the consumer object reference. It returns nil() if it has not connected yet. NOTE: This method does not return a new reference!!! Doing so will increase the locking overhead on the critical path.

◆ consumer() [2/2]

void TAO_CEC_ProxyPushSupplier::consumer ( CosEventComm::PushConsumer_ptr consumer)
protected

Set the consumer, used by some implementations to change the policies used when invoking operations on the consumer.

◆ consumer_i()

void TAO_CEC_ProxyPushSupplier::consumer_i ( CosEventComm::PushConsumer_ptr consumer)
protected

◆ consumer_non_existent()

CORBA::Boolean TAO_CEC_ProxyPushSupplier::consumer_non_existent ( CORBA::Boolean_out disconnected)

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

◆ deactivate()

void TAO_CEC_ProxyPushSupplier::deactivate ( )
virtual

Deactivate from the POA.

◆ disconnect_push_supplier()

void TAO_CEC_ProxyPushSupplier::disconnect_push_supplier ( )
virtual

◆ is_connected()

CORBA::Boolean TAO_CEC_ProxyPushSupplier::is_connected ( ) const

Return 0 if no consumer is connected...

◆ is_connected_i()

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

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

◆ push()

void TAO_CEC_ProxyPushSupplier::push ( const CORBA::Any & event)
virtual

Internal methods to push an event to each consumer.

◆ push_nocopy()

void TAO_CEC_ProxyPushSupplier::push_nocopy ( CORBA::Any & event)
virtual

◆ push_to_consumer()

void TAO_CEC_ProxyPushSupplier::push_to_consumer ( const CORBA::Any & event)

Internal methods to invoke a typed event to each consumer.

Pushes to the consumer, verifies that it is connected.

◆ reactive_push_to_consumer()

void TAO_CEC_ProxyPushSupplier::reactive_push_to_consumer ( const CORBA::Any & event)

◆ shutdown()

void TAO_CEC_ProxyPushSupplier::shutdown ( )
virtual

The event channel is shutting down.

Member Data Documentation

◆ consumer_

CosEventComm::PushConsumer_var TAO_CEC_ProxyPushSupplier::consumer_
private

The consumer – use apply_policy() instead of assigning directly to consumer_. This will keep consumer_ and nopolicy_consumer_ in sync.

◆ default_POA_

PortableServer::POA_var TAO_CEC_ProxyPushSupplier::default_POA_
private

Store the default POA.

◆ event_channel_

TAO_CEC_EventChannel* TAO_CEC_ProxyPushSupplier::event_channel_
private

The Event Channel that owns this object.

◆ lock_

ACE_Lock* TAO_CEC_ProxyPushSupplier::lock_
private

The Typed Event Channel that owns this object.

The locking strategy.

◆ nopolicy_consumer_

CosEventComm::PushConsumer_var TAO_CEC_ProxyPushSupplier::nopolicy_consumer_
private

The consumer without any policies applied.

◆ refcount_

CORBA::ULong TAO_CEC_ProxyPushSupplier::refcount_
private

The reference count.

◆ timeout_

ACE_Time_Value TAO_CEC_ProxyPushSupplier::timeout_
private

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