TAO_PortableServer  2.3.3
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
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]

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. More...
 
 ~Servant_Upcall (void)
 Destructor. More...
 
int prepare_for_upcall (const TAO::ObjectKey &key, const char *operation, CORBA::Object_out forward_to)
 Locate POA and servant. More...
 
int prepare_for_upcall_i (const TAO::ObjectKey &key, const char *operation, CORBA::Object_out forward_to, bool &wait_occurred_restart_call)
 Helper. More...
 
void pre_invoke_remote_request (TAO_ServerRequest &req)
 Run pre_invoke for a remote request. More...
 
void pre_invoke_collocated_request (void)
 Run pre_invoke for a collocated request. More...
 
void post_invoke (void)
 Run post_invoke for a request. More...
 
::TAO_Root_POAlookup_POA (const TAO::ObjectKey &key)
 Locate POA. More...
 
::TAO_Root_POApoa (void) const
 POA accessor. More...
 
TAO_Object_Adapterobject_adapter (void) const
 Object Adapter accessor. More...
 
const PortableServer::ObjectIdid (void) const
 System ID accessor. More...
 
void user_id (const PortableServer::ObjectId *)
 
const PortableServer::ObjectIduser_id (void) const
 
PortableServer::Servant servant (void) const
 Servant accessor. More...
 
void * locator_cookie (void) const
 Get the Servant Locator's cookie. More...
 
void locator_cookie (void *cookie)
 Set the Servant Locator's cookie. More...
 
const char * operation (void) const
 Get the operation name. More...
 
void operation (const char *)
 Set the operation name. More...
 
void active_object_map_entry (TAO_Active_Object_Map_Entry *entry)
 Set the active_object_map_entry. More...
 
TAO_Active_Object_Map_Entryactive_object_map_entry (void) const
 Get the active_object_map_entry. More...
 
CORBA::Short priority (void) const
 Get the priority for the current upcall. More...
 
State state (void) const
 Get the state. More...
 
void state (State)
 Set the state. More...
 
void increment_servant_refcount (void)
 Increment the refcount. More...
 

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

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. More...
 
const char * operation_
 Operation name for this current. More...
 
TAO_Active_Object_Map_Entryactive_object_map_entry_
 
Pre_Invoke_State pre_invoke_state_
 Preinvoke data for the upcall. More...
 

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

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

Set the active_object_map_entry.

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

Get 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  ) const

Get the Servant Locator's cookie.

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

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

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

Get the operation name.

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

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

Get the state.

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

Set the state.

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::user_id ( const PortableServer::ObjectId id)

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

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

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: