Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_Object_Adapter Class Reference

Defines the Object Adapter abstraction. More...

`#include <Object_Adapter.h>`

Inheritance diagram for TAO_Object_Adapter:

[legend]
Collaboration diagram for TAO_Object_Adapter:

[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 Methods
| 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_Temporary_Creation_Time &poa_creation_time, TAO_POA *&poa ACE_ENV_ARG_DECL)
int | bind_poa (const poa_name &folded_name, TAO_POA *poa, poa_name_out system_name)
int | unbind_poa (TAO_POA *poa, const poa_name &folded_name, const poa_name &system_name)
int | activate_poa (const poa_name &folded_name, TAO_POA *&poa ACE_ENV_ARG_DECL)
ACE_Lock & | lock (void)
TAO_SYNCH_MUTEX & | thread_lock (void)
ACE_Reverse_Lock< ACE_Lock > & | reverse_lock (void)
TAO_POA * | root_poa (void) const
| Access the root poa.
TAO_ORB_Core & | orb_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_Validator & | validator (void)
| Return the validator.
TAO_POA_Policy_Set & | default_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 foward_to ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
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)
Non_Servant_Upcall * | non_servant_upcall_in_progress (void) const
## Static Public Methods
CORBA::ULong | transient_poa_name_size (void)
## Public Attributes
persistent_poa_name_map * | persistent_poa_name_map_
transient_poa_map * | transient_poa_map_
## Protected Types
typedef ACE_Map< poa_name, TAO_POA * > | transient_poa_map
| Base class of the id map.
typedef ACE_Hash_Map_Manager_Ex_Adapter< poa_name, TAO_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_POA *, TAO_Incremental_Key_Generator > | transient_poa_linear_map
| Id linear map.
typedef ACE_Active_Map_Manager_Adapter< poa_name, TAO_POA *, TAO_Ignore_Original_Key_Adapter > | transient_poa_active_map
| Id active map.
typedef ACE_Map< poa_name, TAO_POA * > | persistent_poa_name_map
| Base class of the name map.
typedef ACE_Hash_Map_Manager_Ex_Adapter< poa_name, TAO_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_POA *, ACE_Noop_Key_Generator< poa_name > > | persistent_poa_name_linear_map
| Id linear map.
## Protected Methods
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_POA *&poa ACE_ENV_ARG_DECL)
int | find_transient_poa (const poa_name &system_name, CORBA::Boolean root, const TAO_Temporary_Creation_Time &poa_creation_time, TAO_POA *&poa ACE_ENV_ARG_DECL)
int | find_persistent_poa (const poa_name &system_name, TAO_POA *&poa ACE_ENV_ARG_DECL)
int | bind_transient_poa (TAO_POA *poa, poa_name_out system_name)
int | bind_persistent_poa (const poa_name &folded_name, TAO_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)
void | set_default_server_protocol_policy (ACE_ENV_SINGLE_ARG_DECL)
## Static Protected Methods
ACE_Lock * | create_lock (int enable_locking, TAO_SYNCH_MUTEX &thread_lock)
void | set_transient_poa_name_size (const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters)
## Protected Attributes
Hint_Strategy * | hint_strategy_
TAO_Servant_Dispatcher * | servant_dispatcher_
| Strategy for dispatching a request to a servant.
TAO_ORB_Core & | orb_core_
int | enable_locking_
TAO_SYNCH_MUTEX | thread_lock_
ACE_Lock * | lock_
ACE_Reverse_Lock< ACE_Lock > | reverse_lock_
## Static Protected Attributes
CORBA::ULong | transient_poa_name_size_ = 0
## Private Methods
TAO_ServantBase * | get_collocated_servant (const TAO_MProfile &mp ACE_ENV_ARG_DECL)
| 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.
Non_Servant_Upcall * | non_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_POA * | root_
| The Root POA.
TAO_POA_Default_Policy_Validator | default_validator_
TAO_POA_Policy_Set | default_poa_policies_
## Friends
class | TAO_POA
class | Non_Servant_Upcall
class | 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

typedef ACE_Hash_Map_Manager_Ex_Adapter< poa_name, TAO_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_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_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_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_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_POA *, TAO_Incremental_Key_Generator> TAO_Object_Adapter::transient_poa_linear_map`[protected]`

| Id linear map.

typedef ACE_Map< poa_name, TAO_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_POA *&poa | ACE_ENV_ARG_DECL
| ) |

ACE_INLINE int TAO_Object_Adapter::bind_persistent_poa | ( | const poa_name & | folded_name,
|  | TAO_POA * | poa,
|  | poa_name_out | system_name
| ) | `[protected]`

int TAO_Object_Adapter::bind_poa | ( | const poa_name & | folded_name,
|  | TAO_POA * | poa,
|  | poa_name_out | system_name
| ) |

ACE_INLINE int TAO_Object_Adapter::bind_transient_poa | ( | TAO_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.

virtual int TAO_Object_Adapter::dispatch | ( | TAO::ObjectKey & | key,
|  | TAO_ServerRequest & | request,
|  | CORBA::Object_out foward_to | ACE_ENV_ARG_DECL
| ) | throw (CORBA::SystemException)`[virtual]`

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]`

ACE_INLINE int TAO_Object_Adapter::find_persistent_poa | ( | const poa_name & | system_name,
|  | TAO_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_Temporary_Creation_Time & | poa_creation_time,
|  | TAO_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_Temporary_Creation_Time & | poa_creation_time,
|  | TAO_POA *&poa | ACE_ENV_ARG_DECL
| ) | `[protected]`

TAO_ServantBase * TAO_Object_Adapter::get_collocated_servant | ( | const TAO_MProfile &mp | ACE_ENV_ARG_DECL | ) | `[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_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_Object_Adapter::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_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_default_server_protocol_policy | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | `[protected]`

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_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 Non_Servant_Upcall`[friend]`

friend class Servant_Upcall`[friend]`

friend class TAO_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.

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_

ACE_Reverse_Lock<ACE_Lock> TAO_Object_Adapter::reverse_lock_`[protected]`

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

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

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

- Object_Adapter.h
- Object_Adapter.cpp
- Object_Adapter.i