TAO_ESF  2.2.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | Private Types | Private Attributes | List of all members
TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE > Class Template Reference

Implement common tasks in the Admin interfaces. More...

#include <ESF_Proxy_Admin.h>

Inheritance diagram for TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >:
Inheritance graph
Collaboration diagram for TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >:
Collaboration graph

Public Member Functions

 TAO_ESF_Proxy_Admin (EVENT_CHANNEL *ec)
 Constructor, allocate the internal collection. More...
 
virtual ~TAO_ESF_Proxy_Admin (void)
 Cleanup internal resources, destroy the internal collection. More...
 
void for_each (TAO_ESF_Worker< PROXY > *worker)
 Iterate over its internal collection. More...
 
virtual INTERFACE * obtain (void)
 Create a new PROXY and activate it. More...
 
virtual void shutdown (void)
 
virtual void connected (PROXY *proxy)
 
virtual void reconnected (PROXY *proxy)
 
virtual void disconnected (PROXY *proxy)
 

Protected Attributes

EVENT_CHANNEL * event_channel_
 The Event Channel we belong to. More...
 

Private Types

typedef
TAO_ESF_Proxy_Collection
< PROXY > 
Collection
 Shorthand for the Proxy collection. More...
 

Private Attributes

Collectioncollection_
 The proxy collection object. More...
 

Detailed Description

template<class EVENT_CHANNEL, class PROXY, class INTERFACE>
class TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >

Implement common tasks in the Admin interfaces.

Requirements

The EVENT_CHANNEL interface must implement:

* /// create a new proxy
* void create_proxy (PROXY*&);
*
* /// destroy a proxy
* void destroy_proxy (PROXY*);
*
* /// create a proxy collection
* void create_proxy_collection (TAO_ESF_Proxy_Collection<PROXY>*&);
*
* /// destroy a proxy collection
* void destroy_proxy_collection (TAO_ESF_Proxy_Collection<PROXY>*&);
* 

In addition to the requirements imposed by TAO_ESF_Proxy_Collection<>, the PROXY interface must define:

* /// The T_ptr for the IDL interface implemented by the PROXY.
* typename .... _ptr_type;
*
* /// The T_var for the IDL interface implemented by the PROXY.
* typename .... _var_type;
*
* /// activate the proxy and return the object reference
* PROXY::_ptr_type
* PROXY::activate (void) throw ();
* 

Member Typedef Documentation

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
typedef TAO_ESF_Proxy_Collection<PROXY> TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::Collection
private

Shorthand for the Proxy collection.

Constructor & Destructor Documentation

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::TAO_ESF_Proxy_Admin ( EVENT_CHANNEL *  ec)

Constructor, allocate the internal collection.

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::~TAO_ESF_Proxy_Admin ( void  )
virtual

Cleanup internal resources, destroy the internal collection.

Member Function Documentation

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
void TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::connected ( PROXY *  proxy)
virtual

A <proxy> has connected, this is invoked when the proxy's client has invoked the connect_xxx_yyy() method. The default implementation is a no-op.

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
void TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::disconnected ( PROXY *  proxy)
virtual

A <proxy> has been disconnected. The default implementation removes the object from the collection and deactivates the proxy.

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
void TAO_ESF_Proxy_Admin< EC, P, I >::for_each ( TAO_ESF_Worker< PROXY > *  worker)

Iterate over its internal collection.

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
INTERFACE * TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::obtain ( void  )
virtual

Create a new PROXY and activate it.

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
void TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::reconnected ( PROXY *  proxy)
virtual

A <proxy> has reconnected, i.e. its client has invoked the connect_xxx_yyy() method, but the proxy was connected already. The default implementation delegates on the collection <reconnected> method

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
void TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::shutdown ( void  )
virtual

The Event Channel that owns this Admin object is going down. Invoke <shutdown> on all the proxies, cleanup the collection and prepare to terminate.

Member Data Documentation

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
Collection* TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::collection_
private

The proxy collection object.

template<class EVENT_CHANNEL , class PROXY , class INTERFACE >
EVENT_CHANNEL* TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::event_channel_
protected

The Event Channel we belong to.


The documentation for this class was generated from the following files: