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

TAO_CEC_EventChannel Class Reference

The CosEventChannelAdmin::EventChannel implementation. More...

#include <CEC_EventChannel.h>

Collaboration diagram for TAO_CEC_EventChannel:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_CEC_EventChannel (const TAO_CEC_EventChannel_Attributes &attributes, TAO_CEC_Factory *factory=0, int own_factory=0)
virtual ~TAO_CEC_EventChannel (void)
 destructor

virtual void activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
TAO_CEC_Dispatchingdispatching (void) const
 Access the dispatching module....

TAO_CEC_ConsumerAdminconsumer_admin (void) const
 Access the consumer admin implementation.

TAO_CEC_SupplierAdminsupplier_admin (void) const
 Access the supplier admin implementation.

TAO_CEC_ConsumerControlconsumer_control (void) const
 Access the consumer control strategy.

TAO_CEC_SupplierControlsupplier_control (void) const
 Access the supplier control strategy.

void create_proxy (TAO_CEC_ProxyPushSupplier *&)
 Create and destroy a ProxyPushSupplier.

void destroy_proxy (TAO_CEC_ProxyPushSupplier *)
void create_proxy (TAO_CEC_ProxyPullSupplier *&)
 Create and destroy a ProxyPullSupplier.

void destroy_proxy (TAO_CEC_ProxyPullSupplier *)
void create_proxy (TAO_CEC_ProxyPushConsumer *&)
 Create and destroy a ProxyPushConsumer.

void destroy_proxy (TAO_CEC_ProxyPushConsumer *)
void create_proxy (TAO_CEC_ProxyPullConsumer *&)
 Create and destroy a ProxyPushConsumer.

void destroy_proxy (TAO_CEC_ProxyPullConsumer *)
void create_proxy_collection (TAO_CEC_ProxyPushSupplier_Collection *&)
void destroy_proxy_collection (TAO_CEC_ProxyPushSupplier_Collection *)
void create_proxy_collection (TAO_CEC_ProxyPullSupplier_Collection *&)
void destroy_proxy_collection (TAO_CEC_ProxyPullSupplier_Collection *)
void create_proxy_collection (TAO_CEC_ProxyPushConsumer_Collection *&)
void destroy_proxy_collection (TAO_CEC_ProxyPushConsumer_Collection *)
void create_proxy_collection (TAO_CEC_ProxyPullConsumer_Collection *&)
void destroy_proxy_collection (TAO_CEC_ProxyPullConsumer_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_CEC_ProxyPushConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void reconnected (TAO_CEC_ProxyPushConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void disconnected (TAO_CEC_ProxyPushConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void connected (TAO_CEC_ProxyPullConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void reconnected (TAO_CEC_ProxyPullConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void disconnected (TAO_CEC_ProxyPullConsumer *ACE_ENV_ARG_DECL_NOT_USED)
virtual void connected (TAO_CEC_ProxyPushSupplier *ACE_ENV_ARG_DECL_NOT_USED)
virtual void reconnected (TAO_CEC_ProxyPushSupplier *ACE_ENV_ARG_DECL_NOT_USED)
virtual void disconnected (TAO_CEC_ProxyPushSupplier *ACE_ENV_ARG_DECL_NOT_USED)
virtual void connected (TAO_CEC_ProxyPullSupplier *ACE_ENV_ARG_DECL_NOT_USED)
virtual void reconnected (TAO_CEC_ProxyPullSupplier *ACE_ENV_ARG_DECL_NOT_USED)
virtual void disconnected (TAO_CEC_ProxyPullSupplier *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
virtual CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
virtual CosEventChannelAdmin::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.


Private Attributes

PortableServer::POA_var supplier_poa_
PortableServer::POA_var consumer_poa_
TAO_CEC_Factoryfactory_
int own_factory_
 Flag that indicates if we own the factory.

TAO_CEC_Dispatchingdispatching_
 The dispatching "module".

TAO_CEC_Pulling_Strategypulling_strategy_
 The pulling strategy.

TAO_CEC_ConsumerAdminconsumer_admin_
 The ConsumerAdmin implementation.

TAO_CEC_SupplierAdminsupplier_admin_
 The SupplierAdmin implementation.

int consumer_reconnect_
 Consumer/Supplier reconnection flags.

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

TAO_CEC_ConsumerControlconsumer_control_
TAO_CEC_SupplierControlsupplier_control_

Detailed Description

The CosEventChannelAdmin::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 CEC_Factory.


Constructor & Destructor Documentation

TAO_CEC_EventChannel::TAO_CEC_EventChannel const TAO_CEC_EventChannel_Attributes   attributes,
TAO_CEC_Factory   factory = 0,
int    own_factory = 0
 

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_CEC_Default_Resource_Factory

TAO_CEC_EventChannel::~TAO_CEC_EventChannel void    [virtual]
 

destructor


Member Function Documentation

void TAO_CEC_EventChannel::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 void TAO_CEC_EventChannel::connected TAO_CEC_ProxyPullSupplier   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::connected TAO_CEC_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_CEC_EventChannel::connected TAO_CEC_ProxyPullConsumer   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::connected TAO_CEC_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_CEC_ConsumerAdmin * TAO_CEC_EventChannel::consumer_admin void    const
 

Access the consumer admin implementation.

ACE_INLINE TAO_CEC_ConsumerControl * TAO_CEC_EventChannel::consumer_control void    const
 

Access the consumer control strategy.

ACE_INLINE PortableServer::POA_ptr TAO_CEC_EventChannel::consumer_poa void   
 

ACE_INLINE int TAO_CEC_EventChannel::consumer_reconnect void    const
 

Can the consumers reconnect to the EC?

ACE_INLINE ACE_Lock * TAO_CEC_EventChannel::create_consumer_lock void   
 

Locking strategies for the ProxyPushConsumer and ProxyPushSupplier objects

ACE_INLINE void TAO_CEC_EventChannel::create_proxy TAO_CEC_ProxyPullConsumer *&   
 

Create and destroy a ProxyPushConsumer.

ACE_INLINE void TAO_CEC_EventChannel::create_proxy TAO_CEC_ProxyPushConsumer *&   
 

Create and destroy a ProxyPushConsumer.

ACE_INLINE void TAO_CEC_EventChannel::create_proxy TAO_CEC_ProxyPullSupplier *&   
 

Create and destroy a ProxyPullSupplier.

ACE_INLINE void TAO_CEC_EventChannel::create_proxy TAO_CEC_ProxyPushSupplier *&   
 

Create and destroy a ProxyPushSupplier.

ACE_INLINE void TAO_CEC_EventChannel::create_proxy_collection TAO_CEC_ProxyPullConsumer_Collection *&   
 

ACE_INLINE void TAO_CEC_EventChannel::create_proxy_collection TAO_CEC_ProxyPushConsumer_Collection *&   
 

Create and destroy a the collections used to store Proxy*Consumers

ACE_INLINE void TAO_CEC_EventChannel::create_proxy_collection TAO_CEC_ProxyPullSupplier_Collection *&   
 

ACE_INLINE void TAO_CEC_EventChannel::create_proxy_collection TAO_CEC_ProxyPushSupplier_Collection *&   
 

Create and destroy a the collections used to store Proxy*Suppliers

ACE_INLINE ACE_Lock * TAO_CEC_EventChannel::create_supplier_lock void   
 

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

Commit suicide.

ACE_INLINE void TAO_CEC_EventChannel::destroy_consumer_lock ACE_Lock  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy TAO_CEC_ProxyPullConsumer  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy TAO_CEC_ProxyPushConsumer  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy TAO_CEC_ProxyPullSupplier  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy TAO_CEC_ProxyPushSupplier  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy_collection TAO_CEC_ProxyPullConsumer_Collection  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy_collection TAO_CEC_ProxyPushConsumer_Collection  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy_collection TAO_CEC_ProxyPullSupplier_Collection  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_proxy_collection TAO_CEC_ProxyPushSupplier_Collection  
 

ACE_INLINE void TAO_CEC_EventChannel::destroy_supplier_lock ACE_Lock  
 

ACE_INLINE int TAO_CEC_EventChannel::disconnect_callbacks void    const
 

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

virtual void TAO_CEC_EventChannel::disconnected TAO_CEC_ProxyPullSupplier   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::disconnected TAO_CEC_ProxyPushSupplier   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::disconnected TAO_CEC_ProxyPullConsumer   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::disconnected TAO_CEC_ProxyPushConsumer   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

ACE_INLINE TAO_CEC_Dispatching * TAO_CEC_EventChannel::dispatching void    const
 

Access the dispatching module....

CosEventChannelAdmin::ConsumerAdmin_ptr TAO_CEC_EventChannel::for_consumers ACE_ENV_SINGLE_ARG_DECL    throw (CORBA::SystemException) [virtual]
 

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

CosEventChannelAdmin::SupplierAdmin_ptr TAO_CEC_EventChannel::for_suppliers ACE_ENV_SINGLE_ARG_DECL    throw (CORBA::SystemException) [virtual]
 

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

virtual void TAO_CEC_EventChannel::reconnected TAO_CEC_ProxyPullSupplier   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::reconnected TAO_CEC_ProxyPushSupplier   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::reconnected TAO_CEC_ProxyPullConsumer   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

virtual void TAO_CEC_EventChannel::reconnected TAO_CEC_ProxyPushConsumer   ACE_ENV_ARG_DECL_NOT_USED [virtual]
 

void TAO_CEC_EventChannel::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_CEC_SupplierAdmin * TAO_CEC_EventChannel::supplier_admin void    const
 

Access the supplier admin implementation.

ACE_INLINE TAO_CEC_SupplierControl * TAO_CEC_EventChannel::supplier_control void    const
 

Access the supplier control strategy.

ACE_INLINE PortableServer::POA_ptr TAO_CEC_EventChannel::supplier_poa void   
 

Access the supplier and consumer POAs from the factory.

ACE_INLINE int TAO_CEC_EventChannel::supplier_reconnect void    const
 

Can the suppliers reconnect to the EC?


Member Data Documentation

TAO_CEC_ConsumerAdmin* TAO_CEC_EventChannel::consumer_admin_ [private]
 

The ConsumerAdmin implementation.

TAO_CEC_ConsumerControl* TAO_CEC_EventChannel::consumer_control_ [private]
 

Strategies to disconnect misbehaving or destroyed consumers and suppliers

PortableServer::POA_var TAO_CEC_EventChannel::consumer_poa_ [private]
 

int TAO_CEC_EventChannel::consumer_reconnect_ [private]
 

Consumer/Supplier reconnection flags.

int TAO_CEC_EventChannel::disconnect_callbacks_ [private]
 

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

TAO_CEC_Dispatching* TAO_CEC_EventChannel::dispatching_ [private]
 

The dispatching "module".

TAO_CEC_Factory* TAO_CEC_EventChannel::factory_ [private]
 

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.

int TAO_CEC_EventChannel::own_factory_ [private]
 

Flag that indicates if we own the factory.

TAO_CEC_Pulling_Strategy* TAO_CEC_EventChannel::pulling_strategy_ [private]
 

The pulling strategy.

TAO_CEC_SupplierAdmin* TAO_CEC_EventChannel::supplier_admin_ [private]
 

The SupplierAdmin implementation.

TAO_CEC_SupplierControl* TAO_CEC_EventChannel::supplier_control_ [private]
 

PortableServer::POA_var TAO_CEC_EventChannel::supplier_poa_ [private]
 

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

int TAO_CEC_EventChannel::supplier_reconnect_ [private]
 


The documentation for this class was generated from the following files:
Generated on Thu Jan 15 00:30:25 2004 for TAO_CosEvent by doxygen1.2.18