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 ACE_ENV_ARG_DECL)
int locate_servant (const TAO::ObjectKey &key ACE_ENV_ARG_DECL)
TAO_SERVANT_LOCATION find_servant (const TAO::ObjectKey &key, PortableServer::Servant &servant ACE_ENV_ARG_DECL)
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 ACE_ENV_ARG_DECL)
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_ENV_ARG_DECL)
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 ACE_ENV_ARG_DECL)
 Initialize the default set of POA policies.
virtual void open (ACE_ENV_SINGLE_ARG_DECL)
virtual void close (int wait_for_completion ACE_ENV_ARG_DECL)
virtual void check_close (int wait_for_completion ACE_ENV_ARG_DECL)
virtual int priority (void) const
virtual int dispatch (TAO::ObjectKey &key, TAO_ServerRequest &request, CORBA::Object_out forward_to ACE_ENV_ARG_DECL)
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 *, CORBA::Object_ptr)
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 ACE_ENV_ARG_DECL)
TAO_SERVANT_LOCATION find_servant_i (const TAO::ObjectKey &key, PortableServer::Servant &servant ACE_ENV_ARG_DECL)
void dispatch_servant_i (const TAO::ObjectKey &key, TAO_ServerRequest &req, void *context ACE_ENV_ARG_DECL)
void locate_poa (const TAO::ObjectKey &key, PortableServer::ObjectId &id, TAO_Root_POA *&poa ACE_ENV_ARG_DECL)
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 ACE_ENV_ARG_DECL)
int find_persistent_poa (const poa_name &system_name, TAO_Root_POA *&poa ACE_ENV_ARG_DECL)
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 ACE_ENV_ARG_DECL)

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_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_ENV_ARG_DECL
 

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  ACE_ENV_ARG_DECL  )  [virtual]
 

Implements TAO_Adapter.

void TAO_Object_Adapter::close int wait_for_completion  ACE_ENV_ARG_DECL  )  [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  ACE_ENV_ARG_DECL
[virtual]
 

Implements TAO_Adapter.

int TAO_Object_Adapter::dispatch_servant const TAO::ObjectKey key,
TAO_ServerRequest req,
CORBA::Object_out forward_to  ACE_ENV_ARG_DECL
 

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

void TAO_Object_Adapter::do_dispatch TAO_ServerRequest req,
TAO::Portable_Server::Servant_Upcall &upcall  ACE_ENV_ARG_DECL
[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  ACE_ENV_ARG_DECL
[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_ENV_ARG_DECL
 

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

TAO_SERVANT_LOCATION TAO_Object_Adapter::find_servant_i const TAO::ObjectKey key,
PortableServer::Servant &servant  ACE_ENV_ARG_DECL
[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  ACE_ENV_ARG_DECL
[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  ACE_ENV_ARG_DECL  ) 
 

Initialize the default set of POA policies.

CORBA::Long TAO_Object_Adapter::initialize_collocated_object TAO_Stub ,
CORBA::Object_ptr 
[virtual]
 

Implements TAO_Adapter.

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

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

int TAO_Object_Adapter::locate_servant_i const TAO::ObjectKey &key  ACE_ENV_ARG_DECL  )  [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 ACE_ENV_SINGLE_ARG_DECL   )  [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]
 

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.

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.

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 Wed Nov 23 16:09:45 2005 for TAO_PortableServer by  doxygen 1.4.5