TAO_CEC_ProxyPullSupplier Class Reference

ProxyPullSupplier. More...

#include <CEC_ProxyPullSupplier.h>

Collaboration diagram for TAO_CEC_ProxyPullSupplier:

Collaboration graph
[legend]
List of all members.

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)
 constructor...
virtual ~TAO_CEC_ProxyPullSupplier (void)
 destructor...
virtual void activate (CosEventChannelAdmin::ProxyPullSupplier_ptr &activated_proxy ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
 Activate in the POA.
virtual void deactivate (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
 Deactivate from the POA.
CORBA::Boolean is_connected (void) const
 Return 0 if no consumer is connected...
CosEventComm::PullConsumer_ptr consumer (void) const
virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL)
 The event channel is shutting down.
CORBA::Boolean consumer_non_existent (CORBA::Boolean_out disconnected ACE_ENV_ARG_DECL)
void push (const CORBA::Any &event ACE_ENV_ARG_DECL)
 Push an event into the queue.
virtual void connect_pull_consumer (CosEventComm::PullConsumer_ptr pull_consumer ACE_ENV_ARG_DECL_NOT_USED) throw (CORBA::SystemException, CosEventChannelAdmin::AlreadyConnected)
virtual CORBA::Any * pull (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) throw (CORBA::SystemException,CosEventComm::Disconnected)
virtual CORBA::Any * try_pull (CORBA::Boolean_out has_event ACE_ENV_ARG_DECL_NOT_USED) throw (CORBA::SystemException,CosEventComm::Disconnected)
virtual void disconnect_pull_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) throw (CORBA::SystemException)
CORBA::ULong _incr_refcnt (void)
 Increment and decrement the reference count.
CORBA::ULong _decr_refcnt (void)
virtual PortableServer::POA_ptr _default_POA (ACE_ENV_SINGLE_ARG_DECL)
virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL)
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL)

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().
void cleanup_i (void)
 Release the child and the consumer.

Private Attributes

TAO_CEC_EventChannelevent_channel_
 The Event Channel that owns this object.
ACE_Locklock_
 The locking strategy.
CORBA::ULong refcount_
 The reference count.
CosEventComm::PullConsumer_var consumer_
 The consumer....
int connected_
PortableServer::POA_var default_POA_
 Store the default POA.
TAO_SYNCH_MUTEX queue_lock_
 Use a message queue to pass the.
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  ) 

constructor...

TAO_CEC_ProxyPullSupplier::~TAO_CEC_ProxyPullSupplier ( void   )  [virtual]

destructor...


Member Function Documentation

virtual void TAO_CEC_ProxyPullSupplier::_add_ref ( ACE_ENV_SINGLE_ARG_DECL   )  [virtual]

CORBA::ULong TAO_CEC_ProxyPullSupplier::_decr_refcnt ( void   ) 

virtual PortableServer::POA_ptr TAO_CEC_ProxyPullSupplier::_default_POA ( ACE_ENV_SINGLE_ARG_DECL   )  [virtual]

CORBA::ULong TAO_CEC_ProxyPullSupplier::_incr_refcnt ( void   ) 

Increment and decrement the reference count.

virtual void TAO_CEC_ProxyPullSupplier::_remove_ref ( ACE_ENV_SINGLE_ARG_DECL   )  [virtual]

void TAO_CEC_ProxyPullSupplier::activate ( CosEventChannelAdmin::ProxyPullSupplier_ptr &activated_proxy  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException) [virtual]

Activate in the POA.

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  ACE_ENV_ARG_DECL_NOT_USED  )  throw (CORBA::SystemException, CosEventChannelAdmin::AlreadyConnected) [virtual]

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

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

ACE_INLINE void TAO_CEC_ProxyPullSupplier::consumer_i ( CosEventComm::PullConsumer_ptr  consumer  )  [protected]

CORBA::Boolean TAO_CEC_ProxyPullSupplier::consumer_non_existent ( CORBA::Boolean_out disconnected  ACE_ENV_ARG_DECL  ) 

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 ( ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [virtual]

Deactivate from the POA.

virtual void TAO_CEC_ProxyPullSupplier::disconnect_pull_supplier ( ACE_ENV_SINGLE_ARG_DECL_NOT_USED   )  throw (CORBA::SystemException) [virtual]

ACE_INLINE CORBA::Boolean TAO_CEC_ProxyPullSupplier::is_connected ( void   )  const

Return 0 if no consumer is connected...

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE CORBA::Boolean TAO_CEC_ProxyPullSupplier::is_connected_i ( void   )  const [protected]

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

virtual CORBA::Any* TAO_CEC_ProxyPullSupplier::pull ( ACE_ENV_SINGLE_ARG_DECL_NOT_USED   )  throw (CORBA::SystemException,CosEventComm::Disconnected) [virtual]

void TAO_CEC_ProxyPullSupplier::push ( const CORBA::Any &event  ACE_ENV_ARG_DECL  ) 

Push an event into the queue.

void TAO_CEC_ProxyPullSupplier::shutdown ( ACE_ENV_SINGLE_ARG_DECL   )  [virtual]

The event channel is shutting down.

CORBA::Any * TAO_CEC_ProxyPullSupplier::try_pull ( CORBA::Boolean_out has_event  ACE_ENV_ARG_DECL_NOT_USED  )  throw (CORBA::SystemException,CosEventComm::Disconnected) [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....

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.

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.

TAO_SYNCH_CONDITION TAO_CEC_ProxyPullSupplier::wait_not_empty_ [private]


The documentation for this class was generated from the following files:
Generated on Wed Apr 19 03:40:34 2006 for TAO_CosEvent by  doxygen 1.4.6-4