CIAO::Servant_Activator Class Reference

Activator that is registered with the POA for facet and consumer servants. More...

#include <Servant_Activator.h>

Inheritance diagram for CIAO::Servant_Activator:

Inheritance graph
[legend]
Collaboration diagram for CIAO::Servant_Activator:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 Servant_Activator (CORBA::ORB_ptr o)
virtual ~Servant_Activator (void)
bool update_port_activator (const PortableServer::ObjectId &oid)
virtual PortableServer::Servant incarnate (const PortableServer::ObjectId &oid, PortableServer::POA_ptr poa)
 Template methods overridden to get callbacks.
virtual void etherealize (const PortableServer::ObjectId &oid, PortableServer::POA_ptr adapter, PortableServer::Servant servant, CORBA::Boolean cleanup_in_progress, CORBA::Boolean remaining_activations)
bool register_port_activator (Port_Activator *pa)
 Local helper methods.

Private Types

typedef ACE_Array_Base
< Port_Activator * > 
Port_Activators

Private Attributes

CORBA::ORB_var orb_
 Pointer to our ORB.
Port_Activators pa_
 Array of port activators.
size_t slot_index_
 Running index of the slot that has been just filled in.
TAO_SYNCH_MUTEX mutex_
 Mutex that synchronizes access to the array.


Detailed Description

Activator that is registered with the POA for facet and consumer servants.

This class acts like a factory in some sense. This factory is registered with the POA with RETAIN policy. When the factory gets a call back as part of the upcall, this factory looks at the list of port activators registered, uses the OID to pick the right one (yes a linear algorithm is used), calls activate () on it which returns the servant for *that* port.


Member Typedef Documentation

@ This should be changed at some point of time so that we don't land up with a linear algorithm


Constructor & Destructor Documentation

CIAO::Servant_Activator::Servant_Activator ( CORBA::ORB_ptr  o  ) 

CIAO::Servant_Activator::~Servant_Activator ( void   )  [virtual]


Member Function Documentation

bool CIAO::Servant_Activator::update_port_activator ( const PortableServer::ObjectId oid  ) 

PortableServer::Servant CIAO::Servant_Activator::incarnate ( const PortableServer::ObjectId oid,
PortableServer::POA_ptr  poa 
) [virtual]

Template methods overridden to get callbacks.

If you would like to know the details of the following two methods, please PortableServer documentation. This is probably not the place to document what these mean.

void CIAO::Servant_Activator::etherealize ( const PortableServer::ObjectId oid,
PortableServer::POA_ptr  adapter,
PortableServer::Servant  servant,
CORBA::Boolean  cleanup_in_progress,
CORBA::Boolean  remaining_activations 
) [virtual]

bool CIAO::Servant_Activator::register_port_activator ( Port_Activator pa  ) 

Local helper methods.


Member Data Documentation

Pointer to our ORB.

Array of port activators.

Running index of the slot that has been just filled in.

TAO_SYNCH_MUTEX CIAO::Servant_Activator::mutex_ [private]

Mutex that synchronizes access to the array.


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

Generated on Thu Nov 27 06:08:31 2008 for CIAO by  doxygen 1.5.6