Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# 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:

[legend]
Collaboration diagram for TAO_EC_Event_Channel_Base:

[legend]
List of all members.

## Public Methods

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_Dispatching * | dispatching (void) const
| Access the dispatching module....
TAO_EC_Filter_Builder * | filter_builder (void) const
| Access the filter builder....
TAO_EC_Supplier_Filter_Builder * | supplier_filter_builder (void) const
| Access the filter builder....
TAO_EC_ConsumerAdmin * | consumer_admin (void) const
TAO_EC_SupplierAdmin * | supplier_admin (void) const
TAO_EC_Timeout_Generator * | timeout_generator (void) const
| Access the timer module...
TAO_EC_Scheduling_Strategy * | scheduling_strategy (void) const
| Access the scheduling strategy.
TAO_EC_ConsumerControl * | consumer_control (void) const
| Access the client control strategies.
TAO_EC_SupplierControl * | supplier_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_Lock * | create_consumer_lock (void)
void | destroy_consumer_lock (ACE_Lock *)
ACE_Lock * | create_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 Methods

| TAO_EC_Event_Channel_Base (const TAO_EC_Event_Channel_Attributes &attributes, TAO_EC_Factory *factory=0, int own_factory=0)
TAO_EC_Factory * | factory (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_Factory * | factory_
int | own_factory_
| Flag that indicates if we own the factory.
TAO_EC_Dispatching * | dispatching_
| The dispatching "module".
TAO_EC_Filter_Builder * | filter_builder_
| The filter builder.
TAO_EC_Supplier_Filter_Builder * | supplier_filter_builder_
| The filter builder for suppliers.
TAO_EC_ConsumerAdmin * | consumer_admin_
| The ConsumerAdmin implementation.
TAO_EC_SupplierAdmin * | supplier_admin_
| The SupplierAdmin implementation.
TAO_EC_Timeout_Generator * | timeout_generator_
| The timeout generator.
TAO_EC_ObserverStrategy * | observer_strategy_
| The observer strategy.
CORBA::Object_var | scheduler_
| The scheduler (may be nil).
TAO_EC_Scheduling_Strategy * | scheduling_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_ConsumerControl * | consumer_control_
| Strategies to disconnect misbehaving or destroyed consumers.
TAO_EC_SupplierControl * | supplier_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.

Enumeration values:

  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

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.

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]`

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.

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:

- EC_Event_Channel_Base.h
- EC_Event_Channel_Base.cpp
- EC_Event_Channel_Base.i