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:

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)
 Locate POA and servant.
int prepare_for_upcall_i (const TAO::ObjectKey &key, const char *operation, CORBA::Object_out forward_to, bool &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 (void)
 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)
 Locate POA.
::TAO_Root_POApoa (void) const
 POA accessor.
TAO_Object_Adapterobject_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_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 (void)
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_
CORBA::Octet system_id_buf_ [TAO_POA_OBJECT_ID_BUF_SIZE]
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_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. For each upcall a new instance of this class is created.

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

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,
bool &  wait_occurred_restart_call 
)

Helper.

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

Run pre_invoke for a remote request.

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

Run pre_invoke for a collocated request.

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

Run post_invoke for a request.

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

Locate POA.

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

POA accessor.

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

Object Adapter accessor.

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

System ID accessor.

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

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

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

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

Servant accessor.

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

Get the Servant Locator's cookie.

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

Set the Servant Locator's cookie.

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

Get the operation name.

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

Set the operation name.

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 TAO_Active_Object_Map_Entry * TAO::Portable_Server::Servant_Upcall::active_object_map_entry ( void   )  const

Get the active_object_map_entry.

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

Get the priority for the current upcall.

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

Get the state.

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

Set the state.

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

Increment the refcount.

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

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

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

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

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

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

Clean-up / reset state of this Servant_Upcall object.

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


Friends And Related Function Documentation

friend class ::TAO_RT_Collocation_Resolver [friend]


Member Data Documentation

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

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

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

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

CORBA::Octet TAO::Portable_Server::Servant_Upcall::system_id_buf_[TAO_POA_OBJECT_ID_BUF_SIZE] [protected]

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

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

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

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

Servant Locator's cookie.

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

Operation name for this current.

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.

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

Preinvoke data for the upcall.


The documentation for this class was generated from the following files:
Generated on Mon Sep 3 04:17:28 2007 for TAO_PortableServer by  doxygen 1.5.3