Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Data Structures | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
NCollection_IncAllocator Class Reference

#include <NCollection_IncAllocator.hxx>

Inheritance diagram for NCollection_IncAllocator:
Inheritance graph
[legend]

Data Structures

struct  IBlock

Public Types

typedef voidaligned_t

Public Member Functions

 NCollection_IncAllocator (const size_t theBlockSize=24600)
 Constructor.
virtual voidAllocate (const size_t size)
 Allocate memory with given size. Returns NULL on failure.
virtual void Free (void *anAddress)
 Free a previously allocated memory. Does nothing.
size_t GetMemSize () const
 Diagnostic method, returns the total allocated size.
 ~NCollection_IncAllocator ()
 Destructor (calls Clean() internally)
voidReallocate (void *anAddress, const size_t oldSize, const size_t newSize)
 Reallocation: it is always allowed but is only efficient with the last allocated item.
void Reset (const Standard_Boolean doReleaseMem=Standard_True)
 Re-initialize the allocator so that the next Allocate call should start allocating in the very begining as though the allocator is just constructed. Warning: make sure that all previously allocated data are no more used in your code!

Protected Member Functions

void Clean ()
 Flush all previously allocated data. All pointers returned by Allocate() become invalid -- be very careful with this.
voidallocateNewBlock (const size_t cSize)
 Allocate a new block and return a pointer to it ** only for internal usage **.

Protected Attributes

IBlockmyFirstBlock
size_t mySize
size_t myMemSize

Detailed Description

Class NCollection_IncAllocator - incremental memory allocator. This class allocates memory on request returning the pointer to an allocated block. This memory is never returned to the system until the allocator is destroyed.

By comparison with the standard new() and malloc() calls, this method is faster and consumes very small additional memory to maintain the heap.

All pointers returned by Allocate() are aligned to the size of the data type "aligned_t". To modify the size of memory blocks requested from the OS, use the parameter of the constructor (measured in bytes); if this parameter is smaller than 25 bytes on 32bit or 49 bytes on 64bit, the block size will be the default 24 kbytes


Member Typedef Documentation


Constructor & Destructor Documentation


Member Function Documentation

virtual void* NCollection_IncAllocator::Allocate ( const size_t  size) [virtual]

Reimplemented from NCollection_BaseAllocator.

Reimplemented in NIS_Allocator.

void* NCollection_IncAllocator::allocateNewBlock ( const size_t  cSize) [protected]
virtual void NCollection_IncAllocator::Free ( void anAddress) [virtual]

Reimplemented from NCollection_BaseAllocator.

Reimplemented in NIS_Allocator.

void* NCollection_IncAllocator::Reallocate ( void anAddress,
const size_t  oldSize,
const size_t  newSize 
)
Parameters:
doReleaseMemTrue - release all previously allocated memory, False - preserve it for future allocations.

Field Documentation


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