TAO_PortableServer 3.0.6
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 ()
 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 ()
 Run pre_invoke for a collocated request. More...
 
void post_invoke ()
 Run post_invoke for a request. More...
 
::TAO_Root_POAlookup_POA (const TAO::ObjectKey &key)
 Locate POA. More...
 
::TAO_Root_POApoa () const
 POA accessor. More...
 
TAO_Object_Adapterobject_adapter () const
 Object Adapter accessor. More...
 
const PortableServer::ObjectIdid () const
 System ID accessor. More...
 
void user_id (const PortableServer::ObjectId *)
 
const PortableServer::ObjectIduser_id () const
 
PortableServer::Servant servant () const
 Servant accessor. More...
 
void * locator_cookie () const
 Get the Servant Locator's cookie. More...
 
void locator_cookie (void *cookie)
 Set the Servant Locator's cookie. More...
 
const char * operation () 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 () const
 Get the active_object_map_entry. More...
 
CORBA::Short priority () const
 Get the priority for the current upcall. More...
 
State state () const
 Get the state. More...
 
void state (State)
 Set the state. More...
 
void increment_servant_refcount ()
 Increment the refcount. More...
 

Protected Member Functions

void post_invoke_servant_cleanup ()
 
void single_threaded_poa_setup ()
 
void single_threaded_poa_cleanup ()
 
void servant_cleanup ()
 
void poa_cleanup ()
 
void upcall_cleanup ()
 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

◆ State

Enumerator
INITIAL_STAGE 
OBJECT_ADAPTER_LOCK_ACQUIRED 
POA_CURRENT_SETUP 
OBJECT_ADAPTER_LOCK_RELEASED 
SERVANT_LOCK_ACQUIRED 

Constructor & Destructor Documentation

◆ Servant_Upcall() [1/2]

TAO::Portable_Server::Servant_Upcall::Servant_Upcall ( TAO_ORB_Core orb_core)
explicit

Constructor.

◆ ~Servant_Upcall()

TAO::Portable_Server::Servant_Upcall::~Servant_Upcall ( )

Destructor.

◆ Servant_Upcall() [2/2]

TAO::Portable_Server::Servant_Upcall::Servant_Upcall ( const Servant_Upcall )
private

Member Function Documentation

◆ active_object_map_entry() [1/2]

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

Get the active_object_map_entry.

◆ active_object_map_entry() [2/2]

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

Set the active_object_map_entry.

◆ id()

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

System ID accessor.

◆ increment_servant_refcount()

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

Increment the refcount.

◆ locator_cookie() [1/2]

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

Get the Servant Locator's cookie.

◆ locator_cookie() [2/2]

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

Set the Servant Locator's cookie.

◆ lookup_POA()

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

Locate POA.

◆ object_adapter()

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

Object Adapter accessor.

◆ operation() [1/2]

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

Get the operation name.

◆ operation() [2/2]

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

Set the operation name.

◆ operator=()

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

◆ poa()

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

POA accessor.

◆ poa_cleanup()

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

◆ post_invoke()

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

Run post_invoke for a request.

◆ post_invoke_servant_cleanup()

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

◆ pre_invoke_collocated_request()

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

Run pre_invoke for a collocated request.

◆ pre_invoke_remote_request()

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

Run pre_invoke for a remote request.

◆ prepare_for_upcall()

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.

◆ prepare_for_upcall_i()

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.

◆ priority()

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

Get the priority for the current upcall.

◆ servant()

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

Servant accessor.

◆ servant_cleanup()

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

◆ single_threaded_poa_cleanup()

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

◆ single_threaded_poa_setup()

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

◆ state() [1/2]

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

Get the state.

◆ state() [2/2]

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

Set the state.

◆ upcall_cleanup()

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

Clean-up / reset state of this Servant_Upcall object.

◆ user_id() [1/2]

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

◆ user_id() [2/2]

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

◆ ::TAO_RT_Collocation_Resolver

friend class ::TAO_RT_Collocation_Resolver
friend

Member Data Documentation

◆ active_object_map_entry_

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.

◆ cookie_

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

Servant Locator's cookie.

◆ current_context_

POA_Current_Impl TAO::Portable_Server::Servant_Upcall::current_context_
protected

◆ object_adapter_

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

◆ operation_

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

Operation name for this current.

◆ poa_

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

◆ pre_invoke_state_

Pre_Invoke_State TAO::Portable_Server::Servant_Upcall::pre_invoke_state_
protected

Preinvoke data for the upcall.

◆ servant_

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

◆ state_

State TAO::Portable_Server::Servant_Upcall::state_
protected

◆ system_id_

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

◆ system_id_buf_

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

◆ user_id_

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

The documentation for this class was generated from the following files: