Share::DefaultAllocator Class Reference
[Internal library classes]

Allocator for blocks inside shared segment. More...

#include <DefaultAllocator.h>

Collaboration diagram for Share::DefaultAllocator:

Collaboration graph
[legend]
List of all members.

Public Types

typedef RelocPtr< char > TRelocPtr
 Pointer type used inside segment.

Public Member Functions

 DefaultAllocator (void *atAddr, size_t segmentHeaderSize, size_t dataSize) throw (ShareException)
 ~DefaultAllocator ()
void * alloc (size_t size) throw (ShareException)
void free (void *addr) throw ()
size_t size ()
size_t available ()

Static Public Member Functions

static size_t sizeNeeded (size_t segmentHeaderSize, size_t dataSize)

Detailed Description

Allocator for blocks inside shared segment.

Note:
This class can be replaced with more efficient class with equivalet interface by changing Share::TSegmentAllocator

Definition at line 57 of file DefaultAllocator.h.


Member Typedef Documentation

typedef RelocPtr<char> Share::DefaultAllocator::TRelocPtr

Pointer type used inside segment.

Definition at line 62 of file DefaultAllocator.h.


Constructor & Destructor Documentation

Share::DefaultAllocator::DefaultAllocator ( void *  atAddr,
size_t  segmentHeaderSize,
size_t  dataSize 
) throw (ShareException)

Parameters:
atAddr Address of attached shared segment. At this addres is placed SegmentHeader object.
segmentHeaderSize Size of SegmentHeader object.
dataSize Desired size of memory for data inside shared segment.
Exceptions:
ShareException Library-specific exception derived from std::bad_alloc

Share::DefaultAllocator::~DefaultAllocator (  ) 


Member Function Documentation

static size_t Share::DefaultAllocator::sizeNeeded ( size_t  segmentHeaderSize,
size_t  dataSize 
) [static]

Parameters:
segmentHeaderSize Size of SegmentHeader object.
dataSize Desired size o memory for data inside shared segment.
Returns:
Return computed size of shared segment to allocate.

void* Share::DefaultAllocator::alloc ( size_t  size  )  throw (ShareException)

Allocate block of memory inside shared segment. ShareException is thrown if not success.

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

void Share::DefaultAllocator::free ( void *  addr  )  throw ()

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

size_t Share::DefaultAllocator::size (  ) 

Returns:
Return total size of memory for data inside shared segment.
Note:
Usable memory inside shared segment could be smaller due to free space fragmentation.

size_t Share::DefaultAllocator::available (  ) 

Returns:
Return size of available memory for data inside shared segment.


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