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

TAO::Portable_Server::POA_Current_Impl::POA_Current_Impl ( void   ) 

Convenience constructor combining construction & initialization.

TAO::Portable_Server::POA_Current_Impl::POA_Current_Impl ( const POA_Current_Impl  )  [private]


Member Function Documentation

PortableServer::POA_ptr TAO::Portable_Server::POA_Current_Impl::get_POA ( void   ) 

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

PortableServer::ObjectId * TAO::Portable_Server::POA_Current_Impl::get_object_id ( void   ) 

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.

PortableServer::Servant TAO::Portable_Server::POA_Current_Impl::get_servant ( void   ) 

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

CORBA::Object_ptr TAO::Portable_Server::POA_Current_Impl::get_reference ( void   ) 

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

ACE_INLINE void TAO::Portable_Server::POA_Current_Impl::poa ( ::TAO_Root_POA p  ) 

Set the POA implementation.

ACE_INLINE::TAO_Root_POA * TAO::Portable_Server::POA_Current_Impl::poa ( void   )  const

Get the POA implemantation.

TAO_ORB_Core & TAO::Portable_Server::POA_Current_Impl::orb_core ( void   )  const

ORB Core for this current.

ACE_INLINE void TAO::Portable_Server::POA_Current_Impl::object_id ( const PortableServer::ObjectId id  ) 

Set the object ID.

ACE_INLINE const PortableServer::ObjectId & TAO::Portable_Server::POA_Current_Impl::object_id ( void   )  const

Get the object ID.

ACE_INLINE void TAO::Portable_Server::POA_Current_Impl::replace_object_id ( const PortableServer::ObjectId system_id  ) 

Just replace the object id smartly.

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

Set the object key.

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

Get the object key.

ACE_INLINE void TAO::Portable_Server::POA_Current_Impl::servant ( PortableServer::Servant  servant  ) 

Set the servant for the current upcall.

ACE_INLINE PortableServer::Servant TAO::Portable_Server::POA_Current_Impl::servant ( void   )  const

Get the servant for the current upcall.

ACE_INLINE void TAO::Portable_Server::POA_Current_Impl::priority ( CORBA::Short  priority  ) 

Set the priority for the current upcall.

ACE_INLINE CORBA::Short TAO::Portable_Server::POA_Current_Impl::priority ( void   )  const

Get the priority for the current upcall.

POA_Current_Impl * TAO::Portable_Server::POA_Current_Impl::previous ( void   )  const

Return the previous current implementation.

void TAO::Portable_Server::POA_Current_Impl::teardown ( void   ) 

Teardown the current for this request.

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

Setup the current.

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


Friends And Related Function Documentation

friend class ::TAO_Root_POA [friend]


Member Data Documentation

The POA implementation invoking an upcall.

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

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.

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

The object key of the current context.

The servant for the current upcall.

The priority for the current upcall.

Current previous from <this>.

Is setup complete?

Pointer to tss resources.


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

Generated on Thu Nov 27 05:20:42 2008 for TAO_PortableServer by  doxygen 1.5.6