Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

# TAO::Portable_Server::Servant_Upcall Class Reference

This class finds out the POA and the servant to perform an upcall. It can only be instantiated without the object adapter's lock held. For each upcall a new instance of this class is created. More...

`#include <Servant_Upcall.h>`

Collaboration diagram for TAO::Portable_Server::Servant_Upcall:

[legend]
List of all members.

## Public Types
enum | State { INITIAL_STAGE, OBJECT_ADAPTER_LOCK_ACQUIRED, POA_CURRENT_SETUP, OBJECT_ADAPTER_LOCK_RELEASED, SERVANT_LOCK_ACQUIRED }
## Public Member Functions
| Servant_Upcall (TAO_ORB_Core *orb_core)
| Constructor.
| ~Servant_Upcall (void)
| Destructor.
int | prepare_for_upcall (const TAO::ObjectKey &key, const char *operation, CORBA::Object_out forward_to)
| Locate POA and servant.
int | prepare_for_upcall_i (const TAO::ObjectKey &key, const char *operation, CORBA::Object_out forward_to, int &wait_occurred_restart_call)
| Helper.
void | pre_invoke_remote_request (TAO_ServerRequest &req)
| Run pre_invoke for a remote request.
void | pre_invoke_collocated_request ()
| Run pre_invoke for a collocated request.
void | post_invoke (void)
| Run post_invoke for a request.
::TAO_Root_POA * | lookup_POA (const TAO::ObjectKey &key)
| Locate POA.
::TAO_Root_POA & | poa (void) const
| POA accessor.
TAO_Object_Adapter & | object_adapter (void) const
| Object Adapter accessor.
const PortableServer::ObjectId & | id (void) const
| System ID accessor.
void | user_id (const PortableServer::ObjectId *)
const PortableServer::ObjectId & | user_id (void) const
PortableServer::Servant | servant (void) const
| Servant accessor.
void * | locator_cookie (void) const
| Get the Servant Locator's cookie.
void | locator_cookie (void *cookie)
| Set the Servant Locator's cookie.
const char * | operation (void) const
| Get the operation name.
void | operation (const char *)
| Set the operation name.
void | active_object_map_entry (TAO_Active_Object_Map_Entry *entry)
| Set the active_object_map_entry.
TAO_Active_Object_Map_Entry * | active_object_map_entry (void) const
| Get the active_object_map_entry.
CORBA::Short | priority (void) const
| Get the priority for the current upcall.
State | state (void) const
| Get the state.
void | state (State)
| Set the state.
void | increment_servant_refcount (void)
| Increment the refcount.
## Protected Member Functions
void | post_invoke_servant_cleanup (void)
void | single_threaded_poa_setup ()
void | single_threaded_poa_cleanup (void)
void | servant_cleanup (void)
void | poa_cleanup (void)
void | upcall_cleanup (void)
| Clean-up / reset state of this Servant_Upcall object.
## Protected Attributes
TAO_Object_Adapter * | object_adapter_
::TAO_Root_POA * | poa_
PortableServer::Servant | servant_
State | state_
PortableServer::ObjectId | system_id_
const PortableServer::ObjectId * | user_id_
POA_Current_Impl | current_context_
void * | cookie_
| Servant Locator's cookie.
const char * | operation_
| Operation name for this current.
TAO_Active_Object_Map_Entry * | active_object_map_entry_
Pre_Invoke_State | pre_invoke_state_
| Preinvoke data for the upcall.
## Private Member Functions
| Servant_Upcall (const Servant_Upcall &)
void | operator= (const Servant_Upcall &)
## Friends
class | ::TAO_RT_Collocation_Resolver

## Detailed Description

This class finds out the POA and the servant to perform an upcall. It can only be instantiated without the object adapter's lock held. For each upcall a new instance of this class is created.

## Member Enumeration Documentation

enum TAO::Portable_Server::Servant_Upcall::State

  | Enumeration values:
  INITIAL_STAGE |
  OBJECT_ADAPTER_LOCK_ACQUIRED |
  POA_CURRENT_SETUP |
  OBJECT_ADAPTER_LOCK_RELEASED |
  SERVANT_LOCK_ACQUIRED |

## Constructor & Destructor Documentation

TAO::Portable_Server::Servant_Upcall::Servant_Upcall | ( | TAO_ORB_Core * | orb_core | ) | `[explicit]`

| Constructor.

TAO::Portable_Server::Servant_Upcall::~Servant_Upcall | ( | void |  | ) |

| Destructor.

TAO::Portable_Server::Servant_Upcall::Servant_Upcall | ( | const Servant_Upcall & |  | ) | `[private]`

## Member Function Documentation

ACE_INLINE TAO_Active_Object_Map_Entry * TAO::Portable_Server::Servant_Upcall::active_object_map_entry | ( | void |  | ) | const

| Get the active_object_map_entry.

ACE_INLINE void TAO::Portable_Server::Servant_Upcall::active_object_map_entry | ( | TAO_Active_Object_Map_Entry * | entry | ) |

| Set the active_object_map_entry.

ACE_INLINE const PortableServer::ObjectId & TAO::Portable_Server::Servant_Upcall::id | ( | void |  | ) | const

| System ID accessor.

void TAO::Portable_Server::Servant_Upcall::increment_servant_refcount | ( | void |  | ) |

| Increment the refcount.

ACE_INLINE void TAO::Portable_Server::Servant_Upcall::locator_cookie | ( | void * | cookie | ) |

| Set the Servant Locator's cookie.

ACE_INLINE void * TAO::Portable_Server::Servant_Upcall::locator_cookie | ( | void |  | ) | const

| Get the Servant Locator's cookie.

TAO_Root_POA * TAO::Portable_Server::Servant_Upcall::lookup_POA | ( | const TAO::ObjectKey & | key | ) |

| Locate POA.

ACE_INLINE TAO_Object_Adapter & TAO::Portable_Server::Servant_Upcall::object_adapter | ( | void |  | ) | const

| Object Adapter accessor.

ACE_INLINE void TAO::Portable_Server::Servant_Upcall::operation | ( | const char * |  | ) |

| Set the operation name.

ACE_INLINE const char * TAO::Portable_Server::Servant_Upcall::operation | ( | void |  | ) | const

| Get the operation name.

void TAO::Portable_Server::Servant_Upcall::operator= | ( | const Servant_Upcall & |  | ) | `[private]`

ACE_INLINE::TAO_Root_POA & TAO::Portable_Server::Servant_Upcall::poa | ( | void |  | ) | const

| POA accessor.

void TAO::Portable_Server::Servant_Upcall::poa_cleanup | ( | void |  | ) | `[protected]`

void TAO::Portable_Server::Servant_Upcall::post_invoke | ( | void |  | ) |

| Run post_invoke for a request.

void TAO::Portable_Server::Servant_Upcall::post_invoke_servant_cleanup | ( | void |  | ) | `[protected]`

void TAO::Portable_Server::Servant_Upcall::pre_invoke_collocated_request | ( |  | ) |

| Run pre_invoke for a collocated request.

void TAO::Portable_Server::Servant_Upcall::pre_invoke_remote_request | ( | TAO_ServerRequest & | req | ) |

| Run pre_invoke for a remote request.

int TAO::Portable_Server::Servant_Upcall::prepare_for_upcall | ( | const TAO::ObjectKey & | key,
|  | const char * | operation,
|  | CORBA::Object_out | forward_to
| ) |

| Locate POA and servant.

int TAO::Portable_Server::Servant_Upcall::prepare_for_upcall_i | ( | const TAO::ObjectKey & | key,
|  | const char * | operation,
|  | CORBA::Object_out | forward_to,
|  | int & | wait_occurred_restart_call
| ) |

| Helper.

ACE_INLINE CORBA::Short TAO::Portable_Server::Servant_Upcall::priority | ( | void |  | ) | const

| Get the priority for the current upcall.

ACE_INLINE PortableServer::Servant TAO::Portable_Server::Servant_Upcall::servant | ( | void |  | ) | const

| Servant accessor.

void TAO::Portable_Server::Servant_Upcall::servant_cleanup | ( | void |  | ) | `[protected]`

void TAO::Portable_Server::Servant_Upcall::single_threaded_poa_cleanup | ( | void |  | ) | `[protected]`

void TAO::Portable_Server::Servant_Upcall::single_threaded_poa_setup | ( |  | ) | `[protected]`

ACE_INLINE void TAO::Portable_Server::Servant_Upcall::state | ( | State |  | ) |

| Set the state.

ACE_INLINE Servant_Upcall::State TAO::Portable_Server::Servant_Upcall::state | ( | void |  | ) | const

| Get the state.

void TAO::Portable_Server::Servant_Upcall::upcall_cleanup | ( | void |  | ) | `[protected]`

| Clean-up / reset state of this Servant_Upcall object.

ACE_INLINE const PortableServer::ObjectId & TAO::Portable_Server::Servant_Upcall::user_id | ( | void |  | ) | const

ACE_INLINE void TAO::Portable_Server::Servant_Upcall::user_id | ( | const PortableServer::ObjectId * |  | ) |

| User ID accessors. This is the same value returned by PortableServer::Current::get_object_id().

## Friends And Related Function Documentation

friend class ::TAO_RT_Collocation_Resolver`[friend]`

## Member Data Documentation

TAO_Active_Object_Map_Entry* TAO::Portable_Server::Servant_Upcall::active_object_map_entry_`[protected]`

| Pointer to the entry in the TAO_Active_Object_Map corresponding to the servant for this request.

void* TAO::Portable_Server::Servant_Upcall::cookie_`[protected]`

| Servant Locator's cookie.

POA_Current_Impl TAO::Portable_Server::Servant_Upcall::current_context_`[protected]`

TAO_Object_Adapter* TAO::Portable_Server::Servant_Upcall::object_adapter_`[protected]`

const char* TAO::Portable_Server::Servant_Upcall::operation_`[protected]`

| Operation name for this current.

::TAO_Root_POA* TAO::Portable_Server::Servant_Upcall::poa_`[protected]`

Pre_Invoke_State TAO::Portable_Server::Servant_Upcall::pre_invoke_state_`[protected]`

| Preinvoke data for the upcall.

PortableServer::Servant TAO::Portable_Server::Servant_Upcall::servant_`[protected]`

State TAO::Portable_Server::Servant_Upcall::state_`[protected]`

PortableServer::ObjectId TAO::Portable_Server::Servant_Upcall::system_id_`[protected]`

const PortableServer::ObjectId* TAO::Portable_Server::Servant_Upcall::user_id_`[protected]`

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

- Servant_Upcall.h
- Servant_Upcall.cpp
- Servant_Upcall.inl