TAO_EC_Event_Channel_Base Class Reference

The RtecEventChannelAdmin::EventChannel implementation. More...

#include <EC_Event_Channel_Base.h>

Inheritance diagram for TAO_EC_Event_Channel_Base:

Inheritance graph
[legend]
Collaboration diagram for TAO_EC_Event_Channel_Base:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~TAO_EC_Event_Channel_Base (void)
 destructor
virtual void activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
virtual void for_each_consumer (TAO_ESF_Worker< TAO_EC_ProxyPushSupplier > *worker ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
virtual void for_each_supplier (TAO_ESF_Worker< TAO_EC_ProxyPushConsumer > *worker ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
TAO_EC_Dispatchingdispatching (void) const
 Access the dispatching module....
TAO_EC_Filter_Builderfilter_builder (void) const
 Access the filter builder....
TAO_EC_Supplier_Filter_Buildersupplier_filter_builder (void) const
 Access the filter builder....
TAO_EC_ConsumerAdminconsumer_admin (void) const
TAO_EC_SupplierAdminsupplier_admin (void) const
TAO_EC_Timeout_Generatortimeout_generator (void) const
 Access the timer module...
TAO_EC_Scheduling_Strategyscheduling_strategy (void) const
 Access the scheduling strategy.
TAO_EC_ConsumerControlconsumer_control (void) const
 Access the client control strategies.
TAO_EC_SupplierControlsupplier_control (void) const
void create_proxy (TAO_EC_ProxyPushSupplier *&)
 Create and destroy a ProxyPushSupplier.
void destroy_proxy (TAO_EC_ProxyPushSupplier *)
void create_proxy (TAO_EC_ProxyPushConsumer *&)
 Create and destroy a ProxyPushConsumer.
void destroy_proxy (TAO_EC_ProxyPushConsumer *)
void create_proxy_collection (TAO_EC_ProxyPushSupplier_Collection *&)
void destroy_proxy_collection (TAO_EC_ProxyPushSupplier_Collection *)
void create_proxy_collection (TAO_EC_ProxyPushConsumer_Collection *&)
void destroy_proxy_collection (TAO_EC_ProxyPushConsumer_Collection *)
PortableServer::POA_ptr supplier_poa (void)
 Access the supplier and consumer POAs from the factory.
PortableServer::POA_ptr consumer_poa (void)
ACE_Lockcreate_consumer_lock (void)
void destroy_consumer_lock (ACE_Lock *)
ACE_Lockcreate_supplier_lock (void)
void destroy_supplier_lock (ACE_Lock *)
virtual void connected (TAO_EC_ProxyPushConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void reconnected (TAO_EC_ProxyPushConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void disconnected (TAO_EC_ProxyPushConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void connected (TAO_EC_ProxyPushSupplier *ACE_ENV_ARG_DECL_NOT_USED)
virtual void reconnected (TAO_EC_ProxyPushSupplier *ACE_ENV_ARG_DECL_NOT_USED)
virtual void disconnected (TAO_EC_ProxyPushSupplier *ACE_ENV_ARG_DECL_NOT_USED)
int consumer_reconnect (void) const
 Can the consumers reconnect to the EC?
int supplier_reconnect (void) const
 Can the suppliers reconnect to the EC?
int disconnect_callbacks (void) const
CORBA::Object_ptr scheduler (void)
 Obtain the scheduler, the user must release.
virtual RtecEventChannelAdmin::ConsumerAdmin_ptr for_consumers (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
virtual RtecEventChannelAdmin::SupplierAdmin_ptr for_suppliers (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
 Commit suicide.
virtual RtecEventChannelAdmin::Observer_Handle append_observer (RtecEventChannelAdmin::Observer_ptr ACE_ENV_ARG_DECL) throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER)
virtual void remove_observer (RtecEventChannelAdmin::Observer_Handle ACE_ENV_ARG_DECL) throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER)
int destroyed (void)
 Return 1 if the event channel is already destroyed.

Protected Types

enum  {
  EC_S_IDLE, EC_S_ACTIVATING, EC_S_ACTIVE, EC_S_DESTROYING,
  EC_S_DESTROYED
}
 Flag to track the status of the event channel. More...

Protected Member Functions

 TAO_EC_Event_Channel_Base (const TAO_EC_Event_Channel_Attributes &attributes, TAO_EC_Factory *factory=0, int own_factory=0)
TAO_EC_Factoryfactory (void) const
void factory (TAO_EC_Factory *factory, int own_factory=0)
void create_strategies (void)
void deactivate_supplier_admin (void)
void deactivate_consumer_admin (void)

Protected Attributes

PortableServer::POA_var supplier_poa_
PortableServer::POA_var consumer_poa_
TAO_EC_Factoryfactory_
int own_factory_
 Flag that indicates if we own the factory.
TAO_EC_Dispatchingdispatching_
 The dispatching "module".
TAO_EC_Filter_Builderfilter_builder_
 The filter builder.
TAO_EC_Supplier_Filter_Buildersupplier_filter_builder_
 The filter builder for suppliers.
TAO_EC_ConsumerAdminconsumer_admin_
 The ConsumerAdmin implementation.
TAO_EC_SupplierAdminsupplier_admin_
 The SupplierAdmin implementation.
TAO_EC_Timeout_Generatortimeout_generator_
 The timeout generator.
TAO_EC_ObserverStrategyobserver_strategy_
 The observer strategy.
CORBA::Object_var scheduler_
 The scheduler (may be nil).
TAO_EC_Scheduling_Strategyscheduling_strategy_
 The scheduling strategy.
int consumer_reconnect_
 Consumer reconnection flags.
int supplier_reconnect_
 Supplier reconnection flags.
int disconnect_callbacks_
 If not zero we send callbacks when a proxy is disconnected.
TAO_EC_ConsumerControlconsumer_control_
 Strategies to disconnect misbehaving or destroyed consumers.
TAO_EC_SupplierControlsupplier_control_
 Strategies to disconnect misbehaving or destroyed suppliers.
TAO_SYNCH_MUTEX mutex_
 Mutex to protect the internal state.
int status_

Detailed Description

The RtecEventChannelAdmin::EventChannel implementation.

This class is the Mediator between all the classes in the EC implementation, its main task is to redirect the messages to the right components, to hold and manage the lifetime of the long lived objects (Timer_Module, SupplierAdmin, ConsumerAdmin and Dispatching) and to provide a simpler interface to the EC_Factory.


Member Enumeration Documentation

anonymous enum [protected]
 

Flag to track the status of the event channel.

Enumerator:
EC_S_IDLE 
EC_S_ACTIVATING 
EC_S_ACTIVE 
EC_S_DESTROYING 
EC_S_DESTROYED 


Constructor & Destructor Documentation

TAO_EC_Event_Channel_Base::~TAO_EC_Event_Channel_Base void   )  [virtual]
 

destructor

TAO_EC_Event_Channel_Base::TAO_EC_Event_Channel_Base const TAO_EC_Event_Channel_Attributes attributes,
TAO_EC_Factory factory = 0,
int  own_factory = 0
[protected]
 

Constructor If own_factory is not 0 it assumes ownership of the factory. If the factory is nil it uses the Service_Configurator to load the Factory, if not found it uses TAO_EC_Default_Resource_Factory


Member Function Documentation

virtual void TAO_EC_Event_Channel_Base::activate ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS   )  [virtual]
 

Start the internal threads (if any), etc. After this call the EC can be used.

virtual RtecEventChannelAdmin::Observer_Handle TAO_EC_Event_Channel_Base::append_observer RtecEventChannelAdmin::Observer_ptr  ACE_ENV_ARG_DECL  )  throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER) [virtual]
 

virtual void TAO_EC_Event_Channel_Base::connected TAO_EC_ProxyPushSupplier ACE_ENV_ARG_DECL_NOT_USED  )  [virtual]
 

Used to inform the EC that a Supplier has connected or disconnected from it.

virtual void TAO_EC_Event_Channel_Base::connected TAO_EC_ProxyPushConsumer ACE_ENV_ARG_DECL_NOT_USED  )  [virtual]
 

Used to inform the EC that a Consumer has connected or disconnected from it.

ACE_INLINE TAO_EC_ConsumerAdmin * TAO_EC_Event_Channel_Base::consumer_admin void   )  const
 

Access the consumer admin implementation, useful for controlling the activation...

ACE_INLINE TAO_EC_ConsumerControl * TAO_EC_Event_Channel_Base::consumer_control void   )  const
 

Access the client control strategies.

ACE_INLINE PortableServer::POA_ptr TAO_EC_Event_Channel_Base::consumer_poa void   ) 
 

ACE_INLINE int TAO_EC_Event_Channel_Base::consumer_reconnect void   )  const
 

Can the consumers reconnect to the EC?

ACE_INLINE ACE_Lock * TAO_EC_Event_Channel_Base::create_consumer_lock void   ) 
 

Locking strategies for the ProxyPushConsumer and ProxyPushSupplier objects

ACE_INLINE void TAO_EC_Event_Channel_Base::create_proxy TAO_EC_ProxyPushConsumer *&   ) 
 

Create and destroy a ProxyPushConsumer.

ACE_INLINE void TAO_EC_Event_Channel_Base::create_proxy TAO_EC_ProxyPushSupplier *&   ) 
 

Create and destroy a ProxyPushSupplier.

ACE_INLINE void TAO_EC_Event_Channel_Base::create_proxy_collection TAO_EC_ProxyPushConsumer_Collection *&   ) 
 

Create and destroy a the collections used to store ProxyPushConsumers

ACE_INLINE void TAO_EC_Event_Channel_Base::create_proxy_collection TAO_EC_ProxyPushSupplier_Collection *&   ) 
 

Create and destroy a the collections used to store ProxyPushSuppliers

void TAO_EC_Event_Channel_Base::create_strategies void   )  [protected]
 

Create all strategies

ACE_INLINE ACE_Lock * TAO_EC_Event_Channel_Base::create_supplier_lock void   ) 
 

void TAO_EC_Event_Channel_Base::deactivate_consumer_admin void   )  [protected]
 

Helpers. Deactivate admins from their POAs, ignoring any CORBA exceptions.

void TAO_EC_Event_Channel_Base::deactivate_supplier_admin void   )  [protected]
 

Helpers. Deactivate admins from their POAs, ignoring any CORBA exceptions.

void TAO_EC_Event_Channel_Base::destroy ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [virtual]
 

Commit suicide.

ACE_INLINE void TAO_EC_Event_Channel_Base::destroy_consumer_lock ACE_Lock  ) 
 

ACE_INLINE void TAO_EC_Event_Channel_Base::destroy_proxy TAO_EC_ProxyPushConsumer  ) 
 

ACE_INLINE void TAO_EC_Event_Channel_Base::destroy_proxy TAO_EC_ProxyPushSupplier  ) 
 

ACE_INLINE void TAO_EC_Event_Channel_Base::destroy_proxy_collection TAO_EC_ProxyPushConsumer_Collection  ) 
 

ACE_INLINE void TAO_EC_Event_Channel_Base::destroy_proxy_collection TAO_EC_ProxyPushSupplier_Collection  ) 
 

ACE_INLINE void TAO_EC_Event_Channel_Base::destroy_supplier_lock ACE_Lock  ) 
 

ACE_INLINE int TAO_EC_Event_Channel_Base::destroyed void   ) 
 

Return 1 if the event channel is already destroyed.

ACE_INLINE int TAO_EC_Event_Channel_Base::disconnect_callbacks void   )  const
 

Should we send callback disconnect messages when a proxy is disconnected by the client

virtual void TAO_EC_Event_Channel_Base::disconnected TAO_EC_ProxyPushSupplier ACE_ENV_ARG_DECL_NOT_USED  )  [virtual]
 

virtual void TAO_EC_Event_Channel_Base::disconnected TAO_EC_ProxyPushConsumer ACE_ENV_ARG_DECL_NOT_USED  )  [virtual]
 

ACE_INLINE TAO_EC_Dispatching * TAO_EC_Event_Channel_Base::dispatching void   )  const
 

Access the dispatching module....

ACE_INLINE void TAO_EC_Event_Channel_Base::factory TAO_EC_Factory factory,
int  own_factory = 0
[protected]
 

Set the factory, if own_factory is not 0 it assumes ownership of the factory.

ACE_INLINE TAO_EC_Factory * TAO_EC_Event_Channel_Base::factory void   )  const [protected]
 

Get the factory.

ACE_INLINE TAO_EC_Filter_Builder * TAO_EC_Event_Channel_Base::filter_builder void   )  const
 

Access the filter builder....

RtecEventChannelAdmin::ConsumerAdmin_ptr TAO_EC_Event_Channel_Base::for_consumers ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [virtual]
 

The default implementation is: this->consumer_admin ()->_this (ACE_ENV_SINGLE_ARG_PARAMETER);

void TAO_EC_Event_Channel_Base::for_each_consumer TAO_ESF_Worker< TAO_EC_ProxyPushSupplier > *worker  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException) [virtual]
 

void TAO_EC_Event_Channel_Base::for_each_supplier TAO_ESF_Worker< TAO_EC_ProxyPushConsumer > *worker  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException) [virtual]
 

RtecEventChannelAdmin::SupplierAdmin_ptr TAO_EC_Event_Channel_Base::for_suppliers ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [virtual]
 

The default implementation is: this->supplier_admin ()->_this (ACE_ENV_SINGLE_ARG_PARAMETER);

virtual void TAO_EC_Event_Channel_Base::reconnected TAO_EC_ProxyPushSupplier ACE_ENV_ARG_DECL_NOT_USED  )  [virtual]
 

virtual void TAO_EC_Event_Channel_Base::reconnected TAO_EC_ProxyPushConsumer ACE_ENV_ARG_DECL_NOT_USED  )  [virtual]
 

virtual void TAO_EC_Event_Channel_Base::remove_observer RtecEventChannelAdmin::Observer_Handle  ACE_ENV_ARG_DECL  )  throw ( CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER) [virtual]
 

ACE_INLINE CORBA::Object_ptr TAO_EC_Event_Channel_Base::scheduler void   ) 
 

Obtain the scheduler, the user must release.

ACE_INLINE TAO_EC_Scheduling_Strategy * TAO_EC_Event_Channel_Base::scheduling_strategy void   )  const
 

Access the scheduling strategy.

virtual void TAO_EC_Event_Channel_Base::shutdown ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS   )  [virtual]
 

Shutdown any internal threads, cleanup all the internal structures, flush all the messages, etc.

ACE_INLINE TAO_EC_SupplierAdmin * TAO_EC_Event_Channel_Base::supplier_admin void   )  const
 

Access the supplier admin implementation, useful for controlling the activation...

ACE_INLINE TAO_EC_SupplierControl * TAO_EC_Event_Channel_Base::supplier_control void   )  const
 

ACE_INLINE TAO_EC_Supplier_Filter_Builder * TAO_EC_Event_Channel_Base::supplier_filter_builder void   )  const
 

Access the filter builder....

ACE_INLINE PortableServer::POA_ptr TAO_EC_Event_Channel_Base::supplier_poa void   ) 
 

Access the supplier and consumer POAs from the factory.

ACE_INLINE int TAO_EC_Event_Channel_Base::supplier_reconnect void   )  const
 

Can the suppliers reconnect to the EC?

ACE_INLINE TAO_EC_Timeout_Generator * TAO_EC_Event_Channel_Base::timeout_generator void   )  const
 

Access the timer module...


Member Data Documentation

TAO_EC_ConsumerAdmin* TAO_EC_Event_Channel_Base::consumer_admin_ [protected]
 

The ConsumerAdmin implementation.

TAO_EC_ConsumerControl* TAO_EC_Event_Channel_Base::consumer_control_ [protected]
 

Strategies to disconnect misbehaving or destroyed consumers.

PortableServer::POA_var TAO_EC_Event_Channel_Base::consumer_poa_ [protected]
 

int TAO_EC_Event_Channel_Base::consumer_reconnect_ [protected]
 

Consumer reconnection flags.

int TAO_EC_Event_Channel_Base::disconnect_callbacks_ [protected]
 

If not zero we send callbacks when a proxy is disconnected.

TAO_EC_Dispatching* TAO_EC_Event_Channel_Base::dispatching_ [protected]
 

The dispatching "module".

TAO_EC_Factory* TAO_EC_Event_Channel_Base::factory_ [protected]
 

This is the abstract factory that creates all the objects that compose an event channel, the event channel simply acts as a Mediator among them.

TAO_EC_Filter_Builder* TAO_EC_Event_Channel_Base::filter_builder_ [protected]
 

The filter builder.

TAO_SYNCH_MUTEX TAO_EC_Event_Channel_Base::mutex_ [protected]
 

Mutex to protect the internal state.

TAO_EC_ObserverStrategy* TAO_EC_Event_Channel_Base::observer_strategy_ [protected]
 

The observer strategy.

int TAO_EC_Event_Channel_Base::own_factory_ [protected]
 

Flag that indicates if we own the factory.

CORBA::Object_var TAO_EC_Event_Channel_Base::scheduler_ [protected]
 

The scheduler (may be nil).

TAO_EC_Scheduling_Strategy* TAO_EC_Event_Channel_Base::scheduling_strategy_ [protected]
 

The scheduling strategy.

int TAO_EC_Event_Channel_Base::status_ [protected]
 

TAO_EC_SupplierAdmin* TAO_EC_Event_Channel_Base::supplier_admin_ [protected]
 

The SupplierAdmin implementation.

TAO_EC_SupplierControl* TAO_EC_Event_Channel_Base::supplier_control_ [protected]
 

Strategies to disconnect misbehaving or destroyed suppliers.

TAO_EC_Supplier_Filter_Builder* TAO_EC_Event_Channel_Base::supplier_filter_builder_ [protected]
 

The filter builder for suppliers.

PortableServer::POA_var TAO_EC_Event_Channel_Base::supplier_poa_ [protected]
 

The POAs used to activate "supplier-side" and "consumer-side" objects.

int TAO_EC_Event_Channel_Base::supplier_reconnect_ [protected]
 

Supplier reconnection flags.

TAO_EC_Timeout_Generator* TAO_EC_Event_Channel_Base::timeout_generator_ [protected]
 

The timeout generator.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:18:37 2005 for TAO_RTEvent by  doxygen 1.4.5