Public Member Functions

ACE_Based_Pointer< CONCRETE > Class Template Reference

A smart proxy that keeps track of the relative offset of a "pointer" from its base address. More...

#include <Based_Pointer_T.h>

Inheritance diagram for ACE_Based_Pointer< CONCRETE >:
Inheritance graph
[legend]
Collaboration diagram for ACE_Based_Pointer< CONCRETE >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ACE_Based_Pointer (void)
 ACE_Based_Pointer (CONCRETE *initial)
 ACE_Based_Pointer (const void *base_addr, int dummy)
 ACE_Based_Pointer (const ACE_Based_Pointer< CONCRETE > &)
 Copy constructor (not implemented yet).
void operator= (const ACE_Based_Pointer< CONCRETE > &)
 Assignment operator.
void operator= (CONCRETE *from)
 Pseudo-assignment operator.
CONCRETE * operator-> (void)
 The C++ "delegation operator".

Detailed Description

template<class CONCRETE>
class ACE_Based_Pointer< CONCRETE >

A smart proxy that keeps track of the relative offset of a "pointer" from its base address.

This class makes it possible to transparently use "pointers" in shared memory as easily as programming with pointers to local memory by overloading the C++ delegation operator ->().

Definition at line 159 of file Based_Pointer_T.h.


Constructor & Destructor Documentation

template<class CONCRETE >
ACE_Based_Pointer< CONCRETE >::ACE_Based_Pointer ( void   ) 

Constructor. See constructor for ACE_Based_Pointer_Basic for details.

Definition at line 19 of file Based_Pointer_T.cpp.

{
  ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer");
}

template<class CONCRETE >
ACE_Based_Pointer< CONCRETE >::ACE_Based_Pointer ( CONCRETE *  initial  ) 

Initialize this object using the <initial> pointer. See constructor for ACE_Based_Pointer_Basic for details.

Definition at line 40 of file Based_Pointer_T.cpp.

  : ACE_Based_Pointer_Basic<CONCRETE> (initial)
{
  ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
}

template<class CONCRETE >
ACE_Based_Pointer< CONCRETE >::ACE_Based_Pointer ( const void *  base_addr,
int  dummy 
)

Initialize this object with known base_addr. dummy is a dummy value used to resolve overload ambiguity and it otherwise ignored.

Definition at line 47 of file Based_Pointer_T.cpp.

  : ACE_Based_Pointer_Basic<CONCRETE> (base_addr, 0)
{
  ACE_TRACE ("ACE_Based_Pointer_Basic<CONCRETE>::ACE_Based_Pointer_Basic");
}

template<class CONCRETE >
ACE_Based_Pointer< CONCRETE >::ACE_Based_Pointer ( const ACE_Based_Pointer< CONCRETE > &  rhs  ) 

Copy constructor (not implemented yet).

Definition at line 112 of file Based_Pointer_T.cpp.

  : ACE_Based_Pointer_Basic<CONCRETE> (rhs)
{
  ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::ACE_Based_Pointer");
  ACE_ASSERT (0); // not implemented.
}


Member Function Documentation

template<class CONCRETE >
CONCRETE * ACE_Based_Pointer< CONCRETE >::operator-> ( void   )  [inline]

The C++ "delegation operator".

Definition at line 11 of file Based_Pointer_T.inl.

{
  ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::operator->");
  return reinterpret_cast<CONCRETE *> (ACE_COMPUTE_BASED_POINTER (this));
}

template<class CONCRETE >
void ACE_Based_Pointer< CONCRETE >::operator= ( const ACE_Based_Pointer< CONCRETE > &  rhs  )  [inline]

Assignment operator.

Definition at line 133 of file Based_Pointer_T.inl.

{
  ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::operator=");
  *this = rhs.addr ();
}

template<class CONCRETE >
void ACE_Based_Pointer< CONCRETE >::operator= ( CONCRETE *  from  )  [inline]

Pseudo-assignment operator.

Reimplemented from ACE_Based_Pointer_Basic< CONCRETE >.

Definition at line 30 of file Based_Pointer_T.inl.

{
  ACE_TRACE ("ACE_Based_Pointer<CONCRETE>::operator =");
  if (rhs == 0)
    // Store a value of <target_> that indicate "NULL" pointer.
    this->target_ = -1;
  else
    this->target_ = ((char *) rhs
                     - ((char *) this - this->base_offset_));
}


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines