#include <CEC_ProxyPullSupplier.h>
Collaboration diagram for TAO_CEC_ProxyPullSupplier:
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_EventChannel * | event_channel_ |
The Event Channel that owns this object. | |
ACE_Lock * | lock_ |
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_ |
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.
typedef CosEventChannelAdmin::ProxyPullSupplier_ptr TAO_CEC_ProxyPullSupplier::_ptr_type |
typedef CosEventChannelAdmin::ProxyPullSupplier_var TAO_CEC_ProxyPullSupplier::_var_type |
TAO_CEC_ProxyPullSupplier::TAO_CEC_ProxyPullSupplier | ( | TAO_CEC_EventChannel * | event_channel | ) |
constructor...
TAO_CEC_ProxyPullSupplier::~TAO_CEC_ProxyPullSupplier | ( | void | ) | [virtual] |
destructor...
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] |
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....
Store the default POA.
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] |
Use a message queue to pass the.
The reference count.