TAO_PortableServer  2.1.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | Private Member Functions | Friends
TAO::Portable_Server::POA_Current_Impl Class Reference

Implementation of the PortableServer::Current object. More...

#include <POA_Current_Impl.h>

Collaboration diagram for TAO::Portable_Server::POA_Current_Impl:
Collaboration graph
[legend]

List of all members.

Public Member Functions

PortableServer::POA_ptr get_POA (void)
PortableServer::ObjectIdget_object_id (void)
PortableServer::Servant get_servant (void)
CORBA::Object_ptr get_reference (void)
void poa (::TAO_Root_POA *)
 Set the POA implementation.
::TAO_Root_POApoa (void) const
 Get the POA implemantation.
TAO_ORB_Coreorb_core (void) const
 ORB Core for this current.
void object_id (const PortableServer::ObjectId &id)
 Set the object ID.
const PortableServer::ObjectIdobject_id (void) const
 Get the object ID.
void replace_object_id (const PortableServer::ObjectId &system_id)
 Just replace the object id smartly.
void object_key (const TAO::ObjectKey &key)
 Set the object key.
const TAO::ObjectKey & object_key (void) const
 Get the object key.
void servant (PortableServer::Servant servant)
 Set the servant for the current upcall.
PortableServer::Servant servant (void) const
 Get the servant for the current upcall.
void priority (CORBA::Short priority)
 Set the priority for the current upcall.
CORBA::Short priority (void) const
 Get the priority for the current upcall.
 POA_Current_Impl (void)
 Convenience constructor combining construction & initialization.
POA_Current_Implprevious (void) const
 Return the previous current implementation.
void teardown (void)
 Teardown the current for this request.
void setup (::TAO_Root_POA *impl, const TAO::ObjectKey &key)
 Setup the current.

Protected Attributes

::TAO_Root_POApoa_
 The POA implementation invoking an upcall.
CORBA::Octet object_id_buf_ [TAO_POA_OBJECT_ID_BUF_SIZE]
PortableServer::ObjectId object_id_
const TAO::ObjectKey * object_key_
 The object key of the current context.
PortableServer::Servant servant_
 The servant for the current upcall.
CORBA::Short priority_
 The priority for the current upcall.
POA_Current_Implprevious_current_impl_
 Current previous from <this>.
bool setup_done_
 Is setup complete?
TAO_TSS_Resourcestss_resources_
 Pointer to tss resources.

Private Member Functions

 POA_Current_Impl (const POA_Current_Impl &)
void operator= (const POA_Current_Impl &)

Friends

class ::TAO_Root_POA

Detailed Description

Implementation of the PortableServer::Current object.

Objects of this class hold state information regarding the current POA invocation. Savvy readers will notice that this contains substantially more methods than the POA spec shows; they exist because the ORB either (a) needs them or (b) finds them useful for implementing a more efficient ORB. The intent is that instances of this class are held in Thread-Specific Storage so that upcalls can get context information regarding their invocation. The POA itself must insure that all <set_*> operations are performed in the execution thread so that the proper <TAO_POA_Current> pointer is obtained from TSS.


Constructor & Destructor Documentation

Convenience constructor combining construction & initialization.


Member Function Documentation

Return pointer to the object id through which this was invoked. This may be necessary in cases where a <Servant> is serving under the guise of multiple object ids.

Return pointer to the invoking POA. Raises the CORBA::NoContext exception.

This operation returns a locally manufactured reference to the object in the context of which it is called.

Returns a reference to the servant that hosts the object in whose context it is called.

Set the object ID.

Get the object ID.

void TAO::Portable_Server::POA_Current_Impl::object_key ( const TAO::ObjectKey &  key)

Set the object key.

const TAO::ObjectKey & TAO::Portable_Server::POA_Current_Impl::object_key ( void  ) const

Get the object key.

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

ORB Core for this current.

Set the POA implementation.

Get the POA implemantation.

Return the previous current implementation.

Set the priority for the current upcall.

Get the priority for the current upcall.

Just replace the object id smartly.

Set the servant for the current upcall.

Get the servant for the current upcall.

void TAO::Portable_Server::POA_Current_Impl::setup ( ::TAO_Root_POA impl,
const TAO::ObjectKey &  key 
)

Setup the current.

Teardown the current for this request.


Friends And Related Function Documentation

friend class ::TAO_Root_POA
friend

Member Data Documentation

The object ID of the current context. This is the user id and not the id the goes into the IOR. Note also that unlike the object_key, this field is stored by value.

In order to avoid memory allocations, we will populate the object id with this buffer.

const TAO::ObjectKey* TAO::Portable_Server::POA_Current_Impl::object_key_
protected

The object key of the current context.

The POA implementation invoking an upcall.

Current previous from <this>.

The priority for the current upcall.

The servant for the current upcall.

Is setup complete?

Pointer to tss resources.


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