#include <EC_Event_Channel_Base.h>
Inheritance diagram for TAO_EC_Event_Channel_Base:
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_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 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_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_ |
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.
anonymous enum [protected] |
TAO_EC_Event_Channel_Base::~TAO_EC_Event_Channel_Base | ( | void | ) | [virtual] |
destructor
TAO_BEGIN_VERSIONED_NAMESPACE_DECL 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
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.
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] |
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.
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.
virtual 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
void TAO_EC_Event_Channel_Base::disconnected | ( | TAO_EC_ProxyPushSupplier * | ACE_ENV_ARG_DECL_NOT_USED | ) | [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....
virtual 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);
virtual void TAO_EC_Event_Channel_Base::for_each_consumer | ( | TAO_ESF_Worker< TAO_EC_ProxyPushSupplier > *worker | ACE_ENV_ARG_DECL | ) | throw (CORBA::SystemException) [virtual] |
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] |
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);
void TAO_EC_Event_Channel_Base::reconnected | ( | TAO_EC_ProxyPushSupplier * | ACE_ENV_ARG_DECL_NOT_USED | ) | [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.
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...
The ConsumerAdmin implementation.
Strategies to disconnect misbehaving or destroyed consumers.
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.
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.
The filter builder.
TAO_SYNCH_MUTEX TAO_EC_Event_Channel_Base::mutex_ [protected] |
Mutex to protect the internal state.
The observer strategy.
int TAO_EC_Event_Channel_Base::own_factory_ [protected] |
Flag that indicates if we own the factory.
The scheduler (may be nil).
The scheduling strategy.
int TAO_EC_Event_Channel_Base::status_ [protected] |
The SupplierAdmin implementation.
Strategies to disconnect misbehaving or destroyed suppliers.
The filter builder for suppliers.
The POAs used to activate "supplier-side" and "consumer-side" objects.
int TAO_EC_Event_Channel_Base::supplier_reconnect_ [protected] |
Supplier reconnection flags.
The timeout generator.