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

#include <Servant_Upcall.h>

Collaboration diagram for TAO::Portable_Server::Servant_Upcall:

Collaboration graph
[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 ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 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 ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 Helper.
void pre_invoke_remote_request (TAO_ServerRequest &req ACE_ENV_ARG_DECL)
 Run pre_invoke for a remote request.
void pre_invoke_collocated_request (ACE_ENV_SINGLE_ARG_DECL)
 Run pre_invoke for a collocated request.
void post_invoke (void)
 Run post_invoke for a request.
::TAO_Root_POAlookup_POA (const TAO::ObjectKey &key ACE_ENV_ARG_DECL)
 Locate POA.
::TAO_Root_POApoa (void) const
 POA accessor.
TAO_Object_Adapterobject_adapter (void) const
 Object Adapter accessor.
const PortableServer::ObjectIdid (void) const
 System ID accessor.
void user_id (const PortableServer::ObjectId *)
const PortableServer::ObjectIduser_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_Entryactive_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 (ACE_ENV_SINGLE_ARG_DECL)
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_Adapterobject_adapter_
::TAO_Root_POApoa_
PortableServer::Servant servant_
State state_
PortableServer::ObjectId system_id_
const PortableServer::ObjectIduser_id_
POA_Current_Impl current_context_
void * cookie_
 Servant Locator's cookie.
const char * operation_
 Operation name for this current.
TAO_Active_Object_Map_Entryactive_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

Classes

class  Pre_Invoke_State
 This struct keeps track of state related to pre- and post-invoke operations. More...

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.


Member Enumeration Documentation

enum TAO::Portable_Server::Servant_Upcall::State
 

Enumerator:
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  ) 
 

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  ACE_ENV_ARG_DECL  ) 
 

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 ACE_ENV_SINGLE_ARG_DECL   ) 
 

Run pre_invoke for a collocated request.

void TAO::Portable_Server::Servant_Upcall::pre_invoke_remote_request TAO_ServerRequest &req  ACE_ENV_ARG_DECL  ) 
 

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  ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

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  ACE_ENV_ARG_DECL_WITH_DEFAULTS
 

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 ACE_ENV_SINGLE_ARG_DECL   )  [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:
Generated on Wed Nov 23 16:11:37 2005 for TAO_PortableServer by  doxygen 1.4.5