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.

Classes

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

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

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

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

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

Get the active_object_map_entry.

void TAO::Portable_Server::Servant_Upcall::active_object_map_entry ( TAO_Active_Object_Map_Entry entry  ) 

Set the active_object_map_entry.

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.

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

Set the Servant Locator's cookie.

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.

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

Object Adapter accessor.

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

Set the operation name.

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

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

Get the priority for the current upcall.

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]
void TAO::Portable_Server::Servant_Upcall::state ( Servant_Upcall::State  state  ) 

Set the state.

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.

const PortableServer::ObjectId & TAO::Portable_Server::Servant_Upcall::user_id ( void   )  const
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().


Friends And Related Function Documentation

friend class ::TAO_RT_Collocation_Resolver [friend]

Member Data Documentation

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

Servant Locator's cookie.

Operation name for this current.

Preinvoke data for the upcall.

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

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Fri Sep 11 04:15:17 2009 for TAO_PortableServer by  doxygen 1.6.1