Share::RelocPtr< T > Class Template Reference
[Core library classes]

Relocable pointer type. More...

#include <sharelib.h>

Inheritance diagram for Share::RelocPtr< T >:

Inheritance graph
[legend]
Collaboration diagram for Share::RelocPtr< T >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef T value_type
typedef size_t size_type
typedef ptrdiff_t difference_type
typedef T * pointer
typedef const T * const_pointer
typedef TVoidPointer< T
>::void_pointer 
void_pointer
 void pointer type derived from template parameter
typedef TVoidPointer< T
>::const_void_pointer 
const_void_pointer
 const void pointer type derived from template parameter
typedef TReference< T >::reference reference
 Reference type derived from template parameter.
typedef TReference< T >::const_reference const_reference
 Const reference type derived from template parameter.
typedef Relocator::relative_pointer relative_pointer
 Relative pointer type.
typedef Relocator::relative_const_pointer relative_const_pointer
 Relative const pointer type.
typedef std::random_access_iterator_tag iterator_category
 STL iterator category.

Public Member Functions

 RelocPtr ()
 RelocPtr (void_pointer abs)
 RelocPtr (void_pointer abs, void *base)
 RelocPtr (const RelocPtr &src)
RelocPtroperator= (const RelocPtr &src)
RelocPtroperator= (void_pointer abs)
pointer operator-> () const
 operator pointer () const
 Implicit conversion to native pointer.
reference operator[] (size_type i)
relative_pointer toRel () const
 Export pointer to number
RelocPtroperator++ ()
RelocPtroperator-- ()
RelocPtroperator+= (difference_type count)
RelocPtroperator-= (difference_type count)

Static Public Member Functions

static RelocPtr< T > fromRel (relative_pointer rel)
 Import pointer from number
static void * operator new (size_t size) throw (ShareException)
static void * operator new[] (size_t size) throw (ShareException)
static void operator delete (void *addr, size_t) throw ()
static void operator delete[] (void *addr, size_t) throw ()
static void * alloc (size_t size) throw (ShareException)
static void * alloc (size_t size, size_t count) throw (ShareException)
static void free (void *addr) throw ()

Detailed Description

template<class T>
class Share::RelocPtr< T >

Relocable pointer type.

Note:
Used for STL allocator.

Definition at line 422 of file sharelib.h.


Member Typedef Documentation

template<class T>
typedef T Share::RelocPtr< T >::value_type

Definition at line 424 of file sharelib.h.

template<class T>
typedef size_t Share::RelocPtr< T >::size_type

Definition at line 425 of file sharelib.h.

template<class T>
typedef ptrdiff_t Share::RelocPtr< T >::difference_type

Definition at line 426 of file sharelib.h.

template<class T>
typedef T* Share::RelocPtr< T >::pointer

Definition at line 427 of file sharelib.h.

template<class T>
typedef const T* Share::RelocPtr< T >::const_pointer

Definition at line 428 of file sharelib.h.

template<class T>
typedef TVoidPointer<T>::void_pointer Share::RelocPtr< T >::void_pointer

void pointer type derived from template parameter

Definition at line 429 of file sharelib.h.

template<class T>
typedef TVoidPointer<T>::const_void_pointer Share::RelocPtr< T >::const_void_pointer

const void pointer type derived from template parameter

Definition at line 430 of file sharelib.h.

template<class T>
typedef TReference<T>::reference Share::RelocPtr< T >::reference

Reference type derived from template parameter.

Definition at line 431 of file sharelib.h.

template<class T>
typedef TReference<T>::const_reference Share::RelocPtr< T >::const_reference

Const reference type derived from template parameter.

Definition at line 432 of file sharelib.h.

template<class T>
typedef Relocator::relative_pointer Share::RelocPtr< T >::relative_pointer

Relative pointer type.

Definition at line 433 of file sharelib.h.

template<class T>
typedef Relocator::relative_const_pointer Share::RelocPtr< T >::relative_const_pointer

Relative const pointer type.

Definition at line 434 of file sharelib.h.

template<class T>
typedef std::random_access_iterator_tag Share::RelocPtr< T >::iterator_category

STL iterator category.

Definition at line 439 of file sharelib.h.


Constructor & Destructor Documentation

template<class T>
Share::RelocPtr< T >::RelocPtr (  )  [inline]

Construct null pointer

Definition at line 444 of file sharelib.h.

template<class T>
Share::RelocPtr< T >::RelocPtr ( void_pointer  abs  )  [inline]

Initialize object using ShareManager singleton to obtain relative address.

Parameters:
abs Absolute pointer to save to object.

Definition at line 453 of file sharelib.h.

template<class T>
Share::RelocPtr< T >::RelocPtr ( void_pointer  abs,
void *  base 
) [inline]

Initialize object using given base address.

Parameters:
abs Absolute pointer to save to object.
base Base address for relocation.

Definition at line 463 of file sharelib.h.

template<class T>
Share::RelocPtr< T >::RelocPtr ( const RelocPtr< T > &  src  )  [inline]

Copy constructor

Definition at line 471 of file sharelib.h.


Member Function Documentation

template<class T>
RelocPtr& Share::RelocPtr< T >::operator= ( const RelocPtr< T > &  src  )  [inline]

Assignment

Definition at line 480 of file sharelib.h.

References Share::RelocPtr< T >::rel_.

template<class T>
RelocPtr& Share::RelocPtr< T >::operator= ( void_pointer  abs  )  [inline]

Assignment from absolute pointer

Definition at line 488 of file sharelib.h.

References Share::ShareManager::instance().

template<class T>
pointer Share::RelocPtr< T >::operator-> (  )  const [inline]

Implicit conversion for accessing members

Returns:
Return absolute pointer using ShareManager singleton to obtain absolute address.

Definition at line 497 of file sharelib.h.

References Share::ShareManager::instance().

Referenced by Share::RelocPtr< T >::operator pointer().

template<class T>
Share::RelocPtr< T >::operator pointer (  )  const [inline]

Implicit conversion to native pointer.

Returns:
Return absolute pointer using ShareManager singleton to obtain absolute address.

Definition at line 506 of file sharelib.h.

References Share::RelocPtr< T >::operator->().

Here is the call graph for this function:

template<class T>
reference Share::RelocPtr< T >::operator[] ( size_type  i  )  [inline]

Indexer

Parameters:
i index

Definition at line 514 of file sharelib.h.

template<class T>
relative_pointer Share::RelocPtr< T >::toRel (  )  const [inline]

Export pointer to number

Definition at line 523 of file sharelib.h.

Referenced by Share::operator-().

template<class T>
static RelocPtr<T> Share::RelocPtr< T >::fromRel ( relative_pointer  rel  )  [inline, static]

Import pointer from number

Definition at line 530 of file sharelib.h.

References Share::RelocPtr< T >::rel_.

template<class T>
RelocPtr& Share::RelocPtr< T >::operator++ (  )  [inline]

Pre-increment

Definition at line 539 of file sharelib.h.

template<class T>
RelocPtr& Share::RelocPtr< T >::operator-- (  )  [inline]

Pre-decrement

Definition at line 546 of file sharelib.h.

template<class T>
RelocPtr& Share::RelocPtr< T >::operator+= ( difference_type  count  )  [inline]

Overloaded operator +=

Definition at line 554 of file sharelib.h.

template<class T>
RelocPtr& Share::RelocPtr< T >::operator-= ( difference_type  count  )  [inline]

Overloaded operator -=

Definition at line 562 of file sharelib.h.

static void* Share::SharedObject::operator new ( size_t  size  )  throw (ShareException) [inline, static, inherited]

Overloaded operator new

Exceptions:
ShareException Library-specific exception derived from std::bad_alloc

Definition at line 352 of file sharelib.h.

References Share::SharedObject::alloc().

static void* Share::SharedObject::operator new[] ( size_t  size  )  throw (ShareException) [inline, static, inherited]

Overloaded operator new[]

Exceptions:
ShareException Library-specific exception derived from std::bad_alloc

Definition at line 361 of file sharelib.h.

References Share::SharedObject::alloc().

static void Share::SharedObject::operator delete ( void *  addr,
size_t   
) throw () [inline, static, inherited]

Overloaded opeartor delete

Definition at line 369 of file sharelib.h.

References Share::SharedObject::free().

static void Share::SharedObject::operator delete[] ( void *  addr,
size_t   
) throw () [inline, static, inherited]

Overloaded operator delete[]

Definition at line 377 of file sharelib.h.

References Share::SharedObject::free().

static void* Share::SharedObject::alloc ( size_t  size  )  throw (ShareException) [inline, static, inherited]

Allocate block of memory inside shared segment.

Parameters:
size Desired size of block to allocate.
Returns:
Return local address of allocated block on success.
Exceptions:
ShareException Library-specific exception derived from std::bad_alloc

Definition at line 388 of file sharelib.h.

References Share::ShareManager::instance().

Referenced by Share::SharedObject::alloc(), Share::SharedObject::operator new(), and Share::SharedObject::operator new[]().

static void* Share::SharedObject::alloc ( size_t  size,
size_t  count 
) throw (ShareException) [inline, static, inherited]

Allocate block of memory inside shared segment.

Parameters:
size Desired size of block to allocate.
Returns:
Return local address of allocated block on success.
Exceptions:
ShareException Library-specific exception derived from std::bad_alloc
Parameters:
count Objects count to allocate.
Note:
Used for STL allocator.

Definition at line 398 of file sharelib.h.

References Share::SharedObject::alloc().

static void Share::SharedObject::free ( void *  addr  )  throw () [inline, static, inherited]

Free block of memory previously allocated by alloc() method.

Parameters:
addr Address of block returned by alloc() method.
Attention:
All attached application may crash if this method is called with invalid address as parameter

Definition at line 407 of file sharelib.h.

References Share::ShareManager::instance().

Referenced by Share::SharedObject::operator delete(), and Share::SharedObject::operator delete[]().


The documentation for this class was generated from the following file:
Generated on Sun Aug 26 17:43:03 2007 for ShareLibrary by  doxygen 1.5.2