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.

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...

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_MUTEX & thread_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 (void)
 Wait for non-servant upcalls to complete.
void wait_for_non_servant_upcalls_to_complete_no_throw (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 (void)
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.

Static Private Member Functions

static void release_poa_manager_factory (TAO_POAManager_Factory *factory)

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

Detailed Description

Defines the Object Adapter abstraction.

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


Member Typedef Documentation

Id hash map.

Id linear map.

Base class of the name map.

Id active map.

Id hash map.

Id linear map.

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 
)
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 
)
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 stub,
const TAO_MProfile mp 
) [virtual]

Implements TAO_Adapter.

ACE_Lock * TAO_Object_Adapter::create_lock ( int  enable_locking,
TAO_SYNCH_MUTEX &  thread_lock 
) [static, protected]
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]
int TAO_Object_Adapter::enable_locking ( void   )  const
int TAO_Object_Adapter::find_persistent_poa ( const poa_name system_name,
TAO_Root_POA *&  poa 
) [protected]
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 
)
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 stub  )  [virtual]

Implements TAO_Adapter.

void TAO_Object_Adapter::locate_poa ( const TAO::ObjectKey &  key,
PortableServer::ObjectId id,
TAO_Root_POA *&  poa 
) [protected]
int TAO_Object_Adapter::locate_servant ( const TAO::ObjectKey &  key  ) 
int TAO_Object_Adapter::locate_servant_i ( const TAO::ObjectKey &  key  )  [protected]
ACE_Lock & TAO_Object_Adapter::lock ( void   ) 
const char * TAO_Object_Adapter::name ( void   )  const [virtual]

Implements TAO_Adapter.

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

Implements TAO_Adapter.

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.

void TAO_Object_Adapter::release_poa_manager_factory ( TAO_POAManager_Factory factory  )  [static, private]
ACE_Reverse_Lock< ACE_Lock > & TAO_Object_Adapter::reverse_lock ( void   ) 
CORBA::Object_ptr TAO_Object_Adapter::root ( void   )  [virtual]

Implements TAO_Adapter.

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]
TAO_SYNCH_MUTEX & TAO_Object_Adapter::thread_lock ( void   ) 
CORBA::ULong TAO_Object_Adapter::transient_poa_name_size ( void   )  [static]
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 
)
int TAO_Object_Adapter::unbind_transient_poa ( const poa_name system_name  )  [protected]
TAO_Policy_Validator & TAO_Object_Adapter::validator ( void   ) 

Return the validator.

void TAO_Object_Adapter::wait_for_non_servant_upcalls_to_complete ( void   ) 

Wait for non-servant upcalls to complete.

void TAO_Object_Adapter::wait_for_non_servant_upcalls_to_complete_no_throw ( void   ) 

Non-exception throwing version.


Friends And Related Function Documentation

friend class Active_Hint_Strategy [friend]
friend class No_Hint_Strategy [friend]
friend class TAO::Portable_Server::Servant_Upcall [friend]
friend class TAO_Root_POA [friend]

Member Data Documentation

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

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

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

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

Current nesting level of non_servant_upcalls.

Id of thread making the non-servant upcall.

Persistent POA map.

The POAManager factory.

The Root POA.

Strategy for dispatching a request to a servant.

TAO_SYNCH_MUTEX TAO_Object_Adapter::thread_lock_ [protected]

Transient POA map.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Fri Sep 11 04:14:22 2009 for TAO_PortableServer by  doxygen 1.6.1