TAO::PICurrent_Impl Class Reference

Implementation of the PortableInterceptor::Current interface. More...

#include <PICurrent_Impl.h>

Collaboration diagram for TAO::PICurrent_Impl:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PICurrent_Impl (void)
 Constructor.
 ~PICurrent_Impl (void)
 Destructor.
CORBA::Any * get_slot (PortableInterceptor::SlotId identifier) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
void set_slot (PortableInterceptor::SlotId identifier, const CORBA::Any &data) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
 Set information in the slot table at the given SlotId.
void take_lazy_copy (PICurrent_Impl *p)
 Logically/Lazy (shallow) copy the given object's slot table.

Private Types

typedef ACE_Array_Base< CORBA::Any > Table
 Typedef for the underyling "slot table.".

Private Member Functions

void convert_from_lazy_to_real_copy ()
void set_callback_for_impending_change (PICurrent_Impl *p)
Tablecurrent_slot_table ()
 PICurrent_Impl (const PICurrent_Impl &)
void operator= (const PICurrent_Impl &)

Private Attributes

Table slot_table_
 Array of CORBA::Anys that is the underlying "slot table.".
PICurrent_Impllazy_copy_
PICurrent_Implimpending_change_callback_

Detailed Description

Implementation of the PortableInterceptor::Current interface.

This class implements both the "request scope current" and the "thread scope current" objects as required by Portable Interceptors.


Member Typedef Documentation

typedef ACE_Array_Base<CORBA::Any> TAO::PICurrent_Impl::Table [private]

Typedef for the underyling "slot table.".


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO::PICurrent_Impl::PICurrent_Impl ( void   ) 

Constructor.

ACE_INLINE TAO::PICurrent_Impl::~PICurrent_Impl ( void   ) 

Destructor.

TAO::PICurrent_Impl::PICurrent_Impl ( const PICurrent_Impl  )  [private]

Prevent copying through the copy constructor and the assignment operator.


Member Function Documentation

ACE_INLINE void TAO::PICurrent_Impl::convert_from_lazy_to_real_copy (  )  [private]

Force this object to convert from a logical (referenced) copy, to a physical (or deep, actual) copy.

ACE_INLINE TAO::PICurrent_Impl::Table & TAO::PICurrent_Impl::current_slot_table (  )  [private]

Returns:
Logically copied slot table if available, otherwise underlying slot table.

TAO_BEGIN_VERSIONED_NAMESPACE_DECL CORBA::Any * TAO::PICurrent_Impl::get_slot ( PortableInterceptor::SlotId  identifier  )  throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)

Retrieve information stored in the slot table at the given SlotId.

void TAO::PICurrent_Impl::operator= ( const PICurrent_Impl  )  [private]

Prevent copying through the copy constructor and the assignment operator.

ACE_INLINE void TAO::PICurrent_Impl::set_callback_for_impending_change ( PICurrent_Impl p  )  [private]

Set the callback PICurrent_Impl object that will be notified of this object's impending destruction or change. Set to 0 to clear. (NOTE Only handles a SINGLE object at at time, does NOT warn previous callback that this has been changed.)

void TAO::PICurrent_Impl::set_slot ( PortableInterceptor::SlotId  identifier,
const CORBA::Any &  data 
) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)

Set information in the slot table at the given SlotId.

void TAO::PICurrent_Impl::take_lazy_copy ( PICurrent_Impl p  ) 

Logically/Lazy (shallow) copy the given object's slot table.


Member Data Documentation

PICurrent_Impl* TAO::PICurrent_Impl::impending_change_callback_ [private]

PICurrent_Impl object that will be notified of this object's impending destruction or change to its slot_table_. This is the PICurrent_Impl that has access to our slot_table_ via its lazy_copy_ pointer. As necessary this allows that object's convert_from_lazy_to_real_copy() to be called.

PICurrent_Impl* TAO::PICurrent_Impl::lazy_copy_ [private]

Access to logical copy from a PICurrent_Impl in another scope, i.e. either the request scope or the thread scope.

Table TAO::PICurrent_Impl::slot_table_ [private]

Array of CORBA::Anys that is the underlying "slot table.".


The documentation for this class was generated from the following files:
Generated on Fri Oct 6 15:49:28 2006 for TAO_PI by  doxygen 1.4.7-1