TAO_Object_Adapter Class Reference

Defines the Object Adapter abstraction. More...

#include <Object_Adapter.h>

Inheritance diagram for TAO_Object_Adapter:

Inheritance graph
[legend]
Collaboration diagram for TAO_Object_Adapter:

Collaboration graph
[legend]
List of all members.

Public Types

typedef PortableServer::ObjectId poa_name
typedef PortableServer::ObjectId_var poa_name_var
typedef PortableServer::ObjectId_out poa_name_out

Public Member Functions

 TAO_Object_Adapter (const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters, TAO_ORB_Core &orb_core)
 Constructor.
 ~TAO_Object_Adapter (void)
 Destructor.
int dispatch_servant (const TAO::ObjectKey &key, TAO_ServerRequest &req, CORBA::Object_out forward_to)
int locate_servant (const TAO::ObjectKey &key)
TAO_SERVANT_LOCATION find_servant (const TAO::ObjectKey &key, PortableServer::Servant &servant)
int find_poa (const poa_name &system_name, CORBA::Boolean activate_it, CORBA::Boolean root, const TAO::Portable_Server::Temporary_Creation_Time &poa_creation_time, TAO_Root_POA *&poa)
int bind_poa (const poa_name &folded_name, TAO_Root_POA *poa, poa_name_out system_name)
int unbind_poa (TAO_Root_POA *poa, const poa_name &folded_name, const poa_name &system_name)
int activate_poa (const poa_name &folded_name, TAO_Root_POA *&poa)
ACE_Locklock (void)
TAO_SYNCH_MUTEXthread_lock (void)
ACE_Reverse_Lock< ACE_Lock > & reverse_lock (void)
TAO_Root_POAroot_poa (void) const
 Access the root poa.
TAO_ORB_Coreorb_core (void) const
 Access to ORB Core.
void wait_for_non_servant_upcalls_to_complete (CORBA::Environment &ACE_TRY_ENV)
 Wait for non-servant upcalls to complete.
void wait_for_non_servant_upcalls_to_complete (void)
 Non-exception throwing version.
TAO_Policy_Validatorvalidator (void)
 Return the validator.
int enable_locking () const
TAO_POA_Policy_Setdefault_poa_policies (void)
 Return the set of default policies.
void servant_dispatcher (TAO_Servant_Dispatcher *dispatcher)
void init_default_policies (TAO_POA_Policy_Set &policies)
 Initialize the default set of POA policies.
virtual void open ()
virtual void close (int wait_for_completion)
virtual void check_close (int wait_for_completion)
virtual int priority (void) const
virtual int dispatch (TAO::ObjectKey &key, TAO_ServerRequest &request, CORBA::Object_out forward_to)
virtual const char * name (void) const
virtual CORBA::Object_ptr root (void)
virtual CORBA::Object_ptr create_collocated_object (TAO_Stub *, const TAO_MProfile &)
virtual CORBA::Long initialize_collocated_object (TAO_Stub *)
TAO::Portable_Server::Non_Servant_Upcallnon_servant_upcall_in_progress (void) const

Static Public Member Functions

static CORBA::ULong transient_poa_name_size (void)

Protected Types

typedef ACE_Map< poa_name,
TAO_Root_POA * > 
transient_poa_map
 Base class of the id map.
typedef ACE_Hash_Map_Manager_Ex_Adapter<
poa_name, TAO_Root_POA *,
TAO_ObjectId_Hash, ACE_Equal_To<
poa_name >, TAO_Incremental_Key_Generator
transient_poa_hash_map
 Id hash map.
typedef ACE_Map_Manager_Adapter<
poa_name, TAO_Root_POA *,
TAO_Incremental_Key_Generator
transient_poa_linear_map
 Id linear map.
typedef ACE_Active_Map_Manager_Adapter<
poa_name, TAO_Root_POA *,
TAO_Ignore_Original_Key_Adapter
transient_poa_active_map
 Id active map.
typedef ACE_Map< poa_name,
TAO_Root_POA * > 
persistent_poa_name_map
 Base class of the name map.
typedef ACE_Hash_Map_Manager_Ex_Adapter<
poa_name, TAO_Root_POA *,
TAO_ObjectId_Hash, ACE_Equal_To<
PortableServer::ObjectId >,
ACE_Noop_Key_Generator< poa_name > > 
persistent_poa_name_hash_map
 Id hash map.
typedef ACE_Map_Manager_Adapter<
poa_name, TAO_Root_POA *,
ACE_Noop_Key_Generator< poa_name > > 
persistent_poa_name_linear_map
 Id linear map.

Protected Member Functions

int locate_servant_i (const TAO::ObjectKey &key)
TAO_SERVANT_LOCATION find_servant_i (const TAO::ObjectKey &key, PortableServer::Servant &servant)
void dispatch_servant_i (const TAO::ObjectKey &key, TAO_ServerRequest &req, void *context)
void locate_poa (const TAO::ObjectKey &key, PortableServer::ObjectId &id, TAO_Root_POA *&poa)
int find_transient_poa (const poa_name &system_name, CORBA::Boolean root, const TAO::Portable_Server::Temporary_Creation_Time &poa_creation_time, TAO_Root_POA *&poa)
int find_persistent_poa (const poa_name &system_name, TAO_Root_POA *&poa)
int bind_transient_poa (TAO_Root_POA *poa, poa_name_out system_name)
int bind_persistent_poa (const poa_name &folded_name, TAO_Root_POA *poa, poa_name_out system_name)
int unbind_transient_poa (const poa_name &system_name)
int unbind_persistent_poa (const poa_name &folded_name, const poa_name &system_name)
virtual void do_dispatch (TAO_ServerRequest &req, TAO::Portable_Server::Servant_Upcall &upcall)

Static Protected Member Functions

static ACE_Lockcreate_lock (int enable_locking, TAO_SYNCH_MUTEX &thread_lock)
static void set_transient_poa_name_size (const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters)

Protected Attributes

Hint_Strategyhint_strategy_
TAO_Servant_Dispatcherservant_dispatcher_
 Strategy for dispatching a request to a servant.
persistent_poa_name_mappersistent_poa_name_map_
 Persistent POA map.
transient_poa_maptransient_poa_map_
 Transient POA map.
TAO_ORB_Coreorb_core_
int enable_locking_
TAO_SYNCH_MUTEX thread_lock_
ACE_Locklock_
ACE_Reverse_Lock< ACE_Lockreverse_lock_

Static Protected Attributes

static CORBA::ULong transient_poa_name_size_ = 0

Private Member Functions

TAO_ServantBaseget_collocated_servant (const TAO_MProfile &mp)
 Helper method to get collocated servant.

Private Attributes

TAO_SYNCH_CONDITION non_servant_upcall_condition_
 Condition variable for waiting on non-servant upcalls to end.
TAO::Portable_Server::Non_Servant_Upcallnon_servant_upcall_in_progress_
unsigned int non_servant_upcall_nesting_level_
 Current nesting level of non_servant_upcalls.
ACE_thread_t non_servant_upcall_thread_
 Id of thread making the non-servant upcall.
TAO_Root_POAroot_
 The Root POA.
TAO_POAManager_Factorypoa_manager_factory_
 The POAManager factory.
TAO_POA_Default_Policy_Validator default_validator_
TAO_POA_Policy_Set default_poa_policies_

Friends

class TAO_Root_POA
class Active_Hint_Strategy
class No_Hint_Strategy
class TAO::Portable_Server::Non_Servant_Upcall
class TAO::Portable_Server::Servant_Upcall

Classes

class  Active_Hint_Strategy
 This class uses active demux hint for POA active hint strategy. More...
class  Hint_Strategy
 Base class for POA active hint strategy. More...
class  iteratable_poa_name
 This class allows iteration over a folded poa name. More...
class  No_Hint_Strategy
 This class doesn't use any hints for POA active hint strategy. More...
class  poa_name_iterator
 Iterator for a folded poa name. More...

Detailed Description

Defines the Object Adapter abstraction.

This class will be used as a facade for the POAs in a server


Member Typedef Documentation

typedef ACE_Hash_Map_Manager_Ex_Adapter< poa_name, TAO_Root_POA *, TAO_ObjectId_Hash, ACE_Equal_To<PortableServer::ObjectId>, ACE_Noop_Key_Generator<poa_name> > TAO_Object_Adapter::persistent_poa_name_hash_map [protected]

Id hash map.

typedef ACE_Map_Manager_Adapter< poa_name, TAO_Root_POA *, ACE_Noop_Key_Generator<poa_name> > TAO_Object_Adapter::persistent_poa_name_linear_map [protected]

Id linear map.

typedef ACE_Map< poa_name, TAO_Root_POA *> TAO_Object_Adapter::persistent_poa_name_map [protected]

Base class of the name map.

typedef PortableServer::ObjectId TAO_Object_Adapter::poa_name

typedef PortableServer::ObjectId_out TAO_Object_Adapter::poa_name_out

typedef PortableServer::ObjectId_var TAO_Object_Adapter::poa_name_var

typedef ACE_Active_Map_Manager_Adapter< poa_name, TAO_Root_POA *, TAO_Ignore_Original_Key_Adapter> TAO_Object_Adapter::transient_poa_active_map [protected]

Id active map.

typedef ACE_Hash_Map_Manager_Ex_Adapter< poa_name, TAO_Root_POA *, TAO_ObjectId_Hash, ACE_Equal_To<poa_name>, TAO_Incremental_Key_Generator> TAO_Object_Adapter::transient_poa_hash_map [protected]

Id hash map.

typedef ACE_Map_Manager_Adapter< poa_name, TAO_Root_POA *, TAO_Incremental_Key_Generator> TAO_Object_Adapter::transient_poa_linear_map [protected]

Id linear map.

typedef ACE_Map< poa_name, TAO_Root_POA *> TAO_Object_Adapter::transient_poa_map [protected]

Base class of the id map.


Constructor & Destructor Documentation

TAO_Object_Adapter::TAO_Object_Adapter ( const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters creation_parameters,
TAO_ORB_Core orb_core 
)

Constructor.

TAO_Object_Adapter::~TAO_Object_Adapter ( void   ) 

Destructor.


Member Function Documentation

int TAO_Object_Adapter::activate_poa ( const poa_name folded_name,
TAO_Root_POA *&  poa 
)

ACE_INLINE int TAO_Object_Adapter::bind_persistent_poa ( const poa_name folded_name,
TAO_Root_POA poa,
poa_name_out  system_name 
) [protected]

int TAO_Object_Adapter::bind_poa ( const poa_name folded_name,
TAO_Root_POA poa,
poa_name_out  system_name 
)

ACE_INLINE int TAO_Object_Adapter::bind_transient_poa ( TAO_Root_POA poa,
poa_name_out  system_name 
) [protected]

void TAO_Object_Adapter::check_close ( int  wait_for_completion  )  [virtual]

Implements TAO_Adapter.

void TAO_Object_Adapter::close ( int  wait_for_completion  )  [virtual]

Implements TAO_Adapter.

CORBA::Object_ptr TAO_Object_Adapter::create_collocated_object ( TAO_Stub ,
const TAO_MProfile  
) [virtual]

Implements TAO_Adapter.

ACE_Lock * TAO_Object_Adapter::create_lock ( int  enable_locking,
TAO_SYNCH_MUTEX thread_lock 
) [static, protected]

ACE_INLINE TAO_POA_Policy_Set & TAO_Object_Adapter::default_poa_policies ( void   ) 

Return the set of default policies.

int TAO_Object_Adapter::dispatch ( TAO::ObjectKey &  key,
TAO_ServerRequest request,
CORBA::Object_out  forward_to 
) [virtual]

Implements TAO_Adapter.

int TAO_Object_Adapter::dispatch_servant ( const TAO::ObjectKey &  key,
TAO_ServerRequest req,
CORBA::Object_out  forward_to 
)

void TAO_Object_Adapter::dispatch_servant_i ( const TAO::ObjectKey &  key,
TAO_ServerRequest req,
void *  context 
) [protected]

void TAO_Object_Adapter::do_dispatch ( TAO_ServerRequest req,
TAO::Portable_Server::Servant_Upcall upcall 
) [protected, virtual]

ACE_INLINE int TAO_Object_Adapter::enable_locking (  )  const

ACE_INLINE int TAO_Object_Adapter::find_persistent_poa ( const poa_name system_name,
TAO_Root_POA *&  poa 
) [protected]

ACE_INLINE int TAO_Object_Adapter::find_poa ( const poa_name system_name,
CORBA::Boolean  activate_it,
CORBA::Boolean  root,
const TAO::Portable_Server::Temporary_Creation_Time poa_creation_time,
TAO_Root_POA *&  poa 
)

ACE_INLINE TAO_SERVANT_LOCATION TAO_Object_Adapter::find_servant ( const TAO::ObjectKey &  key,
PortableServer::Servant servant 
)

TAO_SERVANT_LOCATION TAO_Object_Adapter::find_servant_i ( const TAO::ObjectKey &  key,
PortableServer::Servant servant 
) [protected]

int TAO_Object_Adapter::find_transient_poa ( const poa_name system_name,
CORBA::Boolean  root,
const TAO::Portable_Server::Temporary_Creation_Time poa_creation_time,
TAO_Root_POA *&  poa 
) [protected]

TAO_ServantBase * TAO_Object_Adapter::get_collocated_servant ( const TAO_MProfile mp  )  [private]

Helper method to get collocated servant.

void TAO_Object_Adapter::init_default_policies ( TAO_POA_Policy_Set policies  ) 

Initialize the default set of POA policies.

CORBA::Long TAO_Object_Adapter::initialize_collocated_object ( TAO_Stub  )  [virtual]

Implements TAO_Adapter.

void TAO_Object_Adapter::locate_poa ( const TAO::ObjectKey &  key,
PortableServer::ObjectId id,
TAO_Root_POA *&  poa 
) [protected]

ACE_INLINE int TAO_Object_Adapter::locate_servant ( const TAO::ObjectKey &  key  ) 

int TAO_Object_Adapter::locate_servant_i ( const TAO::ObjectKey &  key  )  [protected]

ACE_INLINE ACE_Lock & TAO_Object_Adapter::lock ( void   ) 

const char * TAO_Object_Adapter::name ( void   )  const [virtual]

Implements TAO_Adapter.

ACE_INLINE TAO::Portable_Server::Non_Servant_Upcall * TAO_Object_Adapter::non_servant_upcall_in_progress ( void   )  const

Pointer to the non-servant upcall in progress. If no non-servant upcall is in progress, this pointer is zero.

void TAO_Object_Adapter::open (  )  [virtual]

Implements TAO_Adapter.

ACE_INLINE TAO_ORB_Core & TAO_Object_Adapter::orb_core ( void   )  const

Access to ORB Core.

int TAO_Object_Adapter::priority ( void   )  const [virtual]

Implements TAO_Adapter.

ACE_INLINE ACE_Reverse_Lock< ACE_Lock > & TAO_Object_Adapter::reverse_lock ( void   ) 

CORBA::Object_ptr TAO_Object_Adapter::root ( void   )  [virtual]

Implements TAO_Adapter.

ACE_INLINE TAO_Root_POA * TAO_Object_Adapter::root_poa ( void   )  const

Access the root poa.

void TAO_Object_Adapter::servant_dispatcher ( TAO_Servant_Dispatcher dispatcher  ) 

Set the servant dispatcher method. Ownership is transferred to this Object Adapter. Note: This should only be called at initialization.

void TAO_Object_Adapter::set_transient_poa_name_size ( const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters creation_parameters  )  [static, protected]

ACE_INLINE TAO_SYNCH_MUTEX & TAO_Object_Adapter::thread_lock ( void   ) 

ACE_INLINE CORBA::ULong TAO_Object_Adapter::transient_poa_name_size ( void   )  [static]

ACE_INLINE int TAO_Object_Adapter::unbind_persistent_poa ( const poa_name folded_name,
const poa_name system_name 
) [protected]

int TAO_Object_Adapter::unbind_poa ( TAO_Root_POA poa,
const poa_name folded_name,
const poa_name system_name 
)

ACE_INLINE int TAO_Object_Adapter::unbind_transient_poa ( const poa_name system_name  )  [protected]

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_Policy_Validator & TAO_Object_Adapter::validator ( void   ) 

Return the validator.

void TAO_Object_Adapter::wait_for_non_servant_upcalls_to_complete ( void   ) 

Non-exception throwing version.

void TAO_Object_Adapter::wait_for_non_servant_upcalls_to_complete ( CORBA::Environment ACE_TRY_ENV  ) 

Wait for non-servant upcalls to complete.


Friends And Related Function Documentation

friend class Active_Hint_Strategy [friend]

friend class No_Hint_Strategy [friend]

friend class TAO::Portable_Server::Non_Servant_Upcall [friend]

friend class TAO::Portable_Server::Servant_Upcall [friend]

friend class TAO_Root_POA [friend]


Member Data Documentation

TAO_POA_Policy_Set TAO_Object_Adapter::default_poa_policies_ [private]

Save a list of default policies that should be included in every POA (unless overridden).

TAO_POA_Default_Policy_Validator TAO_Object_Adapter::default_validator_ [private]

The default validator and the beginning of the chain of policy validators.

int TAO_Object_Adapter::enable_locking_ [protected]

Hint_Strategy* TAO_Object_Adapter::hint_strategy_ [protected]

ACE_Lock* TAO_Object_Adapter::lock_ [protected]

TAO_SYNCH_CONDITION TAO_Object_Adapter::non_servant_upcall_condition_ [private]

Condition variable for waiting on non-servant upcalls to end.

TAO::Portable_Server::Non_Servant_Upcall* TAO_Object_Adapter::non_servant_upcall_in_progress_ [private]

Pointer to the non-servant upcall in progress. If no non-servant upcall is in progress, this pointer is zero.

unsigned int TAO_Object_Adapter::non_servant_upcall_nesting_level_ [private]

Current nesting level of non_servant_upcalls.

ACE_thread_t TAO_Object_Adapter::non_servant_upcall_thread_ [private]

Id of thread making the non-servant upcall.

TAO_ORB_Core& TAO_Object_Adapter::orb_core_ [protected]

persistent_poa_name_map* TAO_Object_Adapter::persistent_poa_name_map_ [protected]

Persistent POA map.

TAO_POAManager_Factory* TAO_Object_Adapter::poa_manager_factory_ [private]

The POAManager factory.

ACE_Reverse_Lock<ACE_Lock> TAO_Object_Adapter::reverse_lock_ [protected]

TAO_Root_POA* TAO_Object_Adapter::root_ [private]

The Root POA.

TAO_Servant_Dispatcher* TAO_Object_Adapter::servant_dispatcher_ [protected]

Strategy for dispatching a request to a servant.

TAO_SYNCH_MUTEX TAO_Object_Adapter::thread_lock_ [protected]

transient_poa_map* TAO_Object_Adapter::transient_poa_map_ [protected]

Transient POA map.

TAO_BEGIN_VERSIONED_NAMESPACE_DECL CORBA::ULong TAO_Object_Adapter::transient_poa_name_size_ = 0 [static, protected]


The documentation for this class was generated from the following files:
Generated on Sun Jul 9 09:55:35 2006 for TAO_PortableServer by  doxygen 1.4.7-1