TAO_CosEvent  2.2.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
TAO_CEC_ProxyPullSupplier Class Reference

ProxyPullSupplier. More...

#include <CEC_ProxyPullSupplier.h>

Inheritance diagram for TAO_CEC_ProxyPullSupplier:
Inheritance graph
Collaboration diagram for TAO_CEC_ProxyPullSupplier:
Collaboration graph

Public Types

typedef
CosEventChannelAdmin::ProxyPullSupplier_ptr 
_ptr_type
 
typedef
CosEventChannelAdmin::ProxyPullSupplier_var 
_var_type
 

Public Member Functions

 TAO_CEC_ProxyPullSupplier (TAO_CEC_EventChannel *event_channel, const ACE_Time_Value &timeout)
 constructor... More...
 
virtual ~TAO_CEC_ProxyPullSupplier (void)
 destructor... More...
 
virtual void activate (CosEventChannelAdmin::ProxyPullSupplier_ptr &activated_proxy)
 Activate in the POA. More...
 
virtual void deactivate (void)
 Deactivate from the POA. More...
 
CORBA::Boolean is_connected (void) const
 Return 0 if no consumer is connected... More...
 
CosEventComm::PullConsumer_ptr consumer (void) const
 
virtual void shutdown (void)
 The event channel is shutting down. More...
 
CORBA::Boolean consumer_non_existent (CORBA::Boolean_out disconnected)
 
void push (const CORBA::Any &event)
 Push an event into the queue. More...
 
virtual void connect_pull_consumer (CosEventComm::PullConsumer_ptr pull_consumer)
 
virtual CORBA::Any * pull (void)
 
virtual CORBA::Any * try_pull (CORBA::Boolean_out has_event)
 
virtual void disconnect_pull_supplier (void)
 
CORBA::ULong _incr_refcnt (void)
 Increment and decrement the reference count. More...
 
CORBA::ULong _decr_refcnt (void)
 
virtual PortableServer::POA_ptr _default_POA (void)
 
virtual void _add_ref (void)
 
virtual void _remove_ref (void)
 

Protected Member Functions

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

Private Attributes

TAO_CEC_EventChannelevent_channel_
 The Event Channel that owns this object. More...
 
ACE_Time_Value timeout_
 
ACE_Locklock_
 The locking strategy. More...
 
CORBA::ULong refcount_
 The reference count. More...
 
CosEventComm::PullConsumer_var consumer_
 
CosEventComm::PullConsumer_var nopolicy_consumer_
 The consumer without any policies applied. More...
 
int connected_
 
PortableServer::POA_var default_POA_
 Store the default POA. More...
 
TAO_SYNCH_MUTEX queue_lock_
 Use a message queue to pass the. More...
 
TAO_SYNCH_CONDITION wait_not_empty_
 
ACE_Unbounded_Queue< CORBA::Any > queue_
 

Detailed Description

ProxyPullSupplier.

Implement the CosEventChannelAdmin::ProxyPullSupplier interface, remember that this class is used to communicate with a PullConsumer, so, in effect, this is the ambassador for a consumer inside the event channel. = MEMORY MANAGMENT 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

typedef CosEventChannelAdmin::ProxyPullSupplier_ptr TAO_CEC_ProxyPullSupplier::_ptr_type
typedef CosEventChannelAdmin::ProxyPullSupplier_var TAO_CEC_ProxyPullSupplier::_var_type

Constructor & Destructor Documentation

TAO_CEC_ProxyPullSupplier::TAO_CEC_ProxyPullSupplier ( TAO_CEC_EventChannel event_channel,
const ACE_Time_Value timeout 
)

constructor...

TAO_CEC_ProxyPullSupplier::~TAO_CEC_ProxyPullSupplier ( void  )
virtual

destructor...

Member Function Documentation

void TAO_CEC_ProxyPullSupplier::_add_ref ( void  )
virtual
CORBA::ULong TAO_CEC_ProxyPullSupplier::_decr_refcnt ( void  )
PortableServer::POA_ptr TAO_CEC_ProxyPullSupplier::_default_POA ( void  )
virtual
CORBA::ULong TAO_CEC_ProxyPullSupplier::_incr_refcnt ( void  )

Increment and decrement the reference count.

void TAO_CEC_ProxyPullSupplier::_remove_ref ( void  )
virtual
void TAO_CEC_ProxyPullSupplier::activate ( CosEventChannelAdmin::ProxyPullSupplier_ptr &  activated_proxy)
virtual

Activate in the POA.

CosEventComm::PullConsumer_ptr TAO_CEC_ProxyPullSupplier::apply_policy ( CosEventComm::PullConsumer_ptr  c)
protected

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

void TAO_CEC_ProxyPullSupplier::cleanup_i ( void  )
protected

Release the child and the consumer.

void TAO_CEC_ProxyPullSupplier::connect_pull_consumer ( CosEventComm::PullConsumer_ptr  pull_consumer)
virtual
CosEventComm::PullConsumer_ptr TAO_CEC_ProxyPullSupplier::consumer ( void  ) 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.

void TAO_CEC_ProxyPullSupplier::consumer ( CosEventComm::PullConsumer_ptr  consumer)
protected

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

void TAO_CEC_ProxyPullSupplier::consumer_i ( CosEventComm::PullConsumer_ptr  consumer)
protected
CORBA::Boolean TAO_CEC_ProxyPullSupplier::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.

void TAO_CEC_ProxyPullSupplier::deactivate ( void  )
virtual

Deactivate from the POA.

void TAO_CEC_ProxyPullSupplier::disconnect_pull_supplier ( void  )
virtual
CORBA::Boolean TAO_CEC_ProxyPullSupplier::is_connected ( void  ) const

Return 0 if no consumer is connected...

CORBA::Boolean TAO_CEC_ProxyPullSupplier::is_connected_i ( void  ) const
protected

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

CORBA::Any * TAO_CEC_ProxyPullSupplier::pull ( void  )
virtual
void TAO_CEC_ProxyPullSupplier::push ( const CORBA::Any &  event)

Push an event into the queue.

void TAO_CEC_ProxyPullSupplier::shutdown ( void  )
virtual

The event channel is shutting down.

CORBA::Any * TAO_CEC_ProxyPullSupplier::try_pull ( CORBA::Boolean_out  has_event)
virtual

Member Data Documentation

int TAO_CEC_ProxyPullSupplier::connected_
private

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

CosEventComm::PullConsumer_var TAO_CEC_ProxyPullSupplier::consumer_
private

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

PortableServer::POA_var TAO_CEC_ProxyPullSupplier::default_POA_
private

Store the default POA.

TAO_CEC_EventChannel* TAO_CEC_ProxyPullSupplier::event_channel_
private

The Event Channel that owns this object.

ACE_Lock* TAO_CEC_ProxyPullSupplier::lock_
private

The locking strategy.

CosEventComm::PullConsumer_var TAO_CEC_ProxyPullSupplier::nopolicy_consumer_
private

The consumer without any policies applied.

ACE_Unbounded_Queue<CORBA::Any> TAO_CEC_ProxyPullSupplier::queue_
private
TAO_SYNCH_MUTEX TAO_CEC_ProxyPullSupplier::queue_lock_
private

Use a message queue to pass the.

CORBA::ULong TAO_CEC_ProxyPullSupplier::refcount_
private

The reference count.

ACE_Time_Value TAO_CEC_ProxyPullSupplier::timeout_
private
TAO_SYNCH_CONDITION TAO_CEC_ProxyPullSupplier::wait_not_empty_
private

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