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

# TAO_ESF_Proxy_Admin Class Template Reference

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

`#include <ESF_Proxy_Admin.h>`

Inheritance diagram for TAO_ESF_Proxy_Admin:

[legend]
Collaboration diagram for TAO_ESF_Proxy_Admin:

[legend]
List of all members.

## Public Methods
| 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 ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
| Iterate over its internal collection. More...
virtual INTERFACE * | obtain (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) throw (CORBA::SystemException)
| Create a new PROXY and activate it. More...
virtual void | shutdown (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
| The Event Channel that owns this Admin object is going down. More...
virtual void | connected (PROXY *proxy ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
| A <proxy> has connected, this is invoked when the proxy's client has invoked the connect_xxx_yyy() method. More...
virtual void | reconnected (PROXY *proxy ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
| A <proxy> has reconnected, i.e. More...
virtual void | disconnected (PROXY *proxy ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
| A <proxy> has been disconnected. More...
## 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
Collection * | collection_
| 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:

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

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

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

## Member Typedef Documentation

template<class EVENT_CHANNEL, class PROXY, class INTERFACE>
typedef TAO_ESF_Proxy_Collection<PROXY> TAO_ESF_Proxy_Admin::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>
virtual void TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::connected | ( | PROXY *proxy | ACE_ENV_ARG_DECL | ) | throw (CORBA::SystemException)`[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 | ACE_ENV_ARG_DECL | ) | throw (CORBA::SystemException)`[virtual]`

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

template<class EC, class P, class I>
ACE_INLINE void TAO_ESF_Proxy_Admin< EC, P, I >::for_each | ( | TAO_ESF_Worker< P > *worker | ACE_ENV_ARG_DECL | ) | throw (CORBA::SystemException)

| Iterate over its internal collection.

template<class EVENT_CHANNEL, class PROXY, class INTERFACE>
INTERFACE * TAO_ESF_Proxy_Admin< EVENT_CHANNEL, PROXY, INTERFACE >::obtain | ( | ACE_ENV_SINGLE_ARG_DECL_NOT_USED |  | ) | throw (CORBA::SystemException)`[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 | ACE_ENV_ARG_DECL | ) | throw (CORBA::SystemException)`[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 | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)`[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::collection_`[private]`

| The proxy collection object.

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

| The Event Channel we belong to.

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

- ESF_Proxy_Admin.h
- ESF_Proxy_Admin.cpp
- ESF_Proxy_Admin.i