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

 INITIAL_STAGE
 OBJECT_ADAPTER_LOCK_ACQUIRED
 POA_CURRENT_SETUP
 OBJECT_ADAPTER_LOCK_RELEASED
 SERVANT_LOCK_ACQUIRED
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::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 (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::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. 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

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 ( void   ) 

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,
bool &  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 ( void   )  [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]

CORBA::Octet TAO::Portable_Server::Servant_Upcall::system_id_buf_[TAO_POA_OBJECT_ID_BUF_SIZE] [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 Mon Apr 30 23:11:41 2007 for TAO_PortableServer by  doxygen 1.4.7-1