Open CASCADE Technology 7.8.2.dev
Standard Class Reference

The package Standard provides global memory allocator and other basic services used by other OCCT components. More...

#include <Standard.hxx>

Public Types

enum class  AllocatorType { NATIVE = 0 , OPT = 1 , TBB = 2 , JEMALLOC = 3 }
 Enumiration of possible allocator types. More...
 

Static Public Member Functions

static AllocatorType GetAllocatorType ()
 Returns default allocator type.
 
static Standard_Address Allocate (const Standard_Size theSize)
 Allocates memory blocks theSize - bytes to allocate.
 
static Standard_Address AllocateOptimal (const Standard_Size theSize)
 Allocates memory blocks theSize - bytes to allocate.
 
static void Free (const Standard_Address thePtr)
 Deallocates memory blocks.
 
template<typename T >
static void Free (T *&thePtr)
 Template version of function Free(), nullifies the argument pointer.
 
static Standard_Address Reallocate (const Standard_Address theStorage, const Standard_Size theNewSize)
 Reallocates memory blocks theStorage - previously allocated memory block theNewSize - new size in bytes.
 
static Standard_Address AllocateAligned (const Standard_Size theSize, const Standard_Size theAlign)
 Allocates aligned memory blocks. Should be used with CPU instructions which require specific alignment. For example: SSE requires 16 bytes, AVX requires 32 bytes.
 
static void FreeAligned (const Standard_Address thePtrAligned)
 Deallocates memory blocks.
 
template<typename T >
static void FreeAligned (T *&thePtrAligned)
 Template version of function FreeAligned(), nullifies the argument pointer.
 
static Standard_Integer Purge ()
 Deallocates the storage retained on the free list and clears the list. Returns non-zero if some memory has been actually freed.
 
static Standard_Boolean StackTrace (char *theBuffer, const int theBufferSize, const int theNbTraces, void *theContext=NULL, const int theNbTopSkip=0)
 Appends backtrace to a message buffer. Stack information might be incomplete in case of stripped binaries. Implementation details:
 

Detailed Description

The package Standard provides global memory allocator and other basic services used by other OCCT components.

Member Enumeration Documentation

◆ AllocatorType

enum class Standard::AllocatorType
strong

Enumiration of possible allocator types.

Enumerator
NATIVE 
OPT 
TBB 
JEMALLOC 

Member Function Documentation

◆ Allocate()

static Standard_Address Standard::Allocate ( const Standard_Size theSize)
static

Allocates memory blocks theSize - bytes to allocate.

◆ AllocateAligned()

static Standard_Address Standard::AllocateAligned ( const Standard_Size theSize,
const Standard_Size theAlign )
static

Allocates aligned memory blocks. Should be used with CPU instructions which require specific alignment. For example: SSE requires 16 bytes, AVX requires 32 bytes.

Parameters
theSizebytes to allocate
theAlignalignment in bytes

◆ AllocateOptimal()

static Standard_Address Standard::AllocateOptimal ( const Standard_Size theSize)
static

Allocates memory blocks theSize - bytes to allocate.

◆ Free() [1/2]

static void Standard::Free ( const Standard_Address thePtr)
static

Deallocates memory blocks.

Parameters
thePtr- previously allocated memory block to be freed

◆ Free() [2/2]

template<typename T >
static void Standard::Free ( T *& thePtr)
inlinestatic

Template version of function Free(), nullifies the argument pointer.

Parameters
thePtr- previously allocated memory block to be freed

◆ FreeAligned() [1/2]

static void Standard::FreeAligned ( const Standard_Address thePtrAligned)
static

Deallocates memory blocks.

Parameters
thePtrAlignedthe memory block previously allocated with AllocateAligned()

◆ FreeAligned() [2/2]

template<typename T >
static void Standard::FreeAligned ( T *& thePtrAligned)
inlinestatic

Template version of function FreeAligned(), nullifies the argument pointer.

Parameters
thePtrAlignedthe memory block previously allocated with AllocateAligned()

◆ GetAllocatorType()

static AllocatorType Standard::GetAllocatorType ( )
static

Returns default allocator type.

◆ Purge()

static Standard_Integer Standard::Purge ( )
static

Deallocates the storage retained on the free list and clears the list. Returns non-zero if some memory has been actually freed.

◆ Reallocate()

static Standard_Address Standard::Reallocate ( const Standard_Address theStorage,
const Standard_Size theNewSize )
static

Reallocates memory blocks theStorage - previously allocated memory block theNewSize - new size in bytes.

◆ StackTrace()

static Standard_Boolean Standard::StackTrace ( char * theBuffer,
const int theBufferSize,
const int theNbTraces,
void * theContext = NULL,
const int theNbTopSkip = 0 )
static

Appends backtrace to a message buffer. Stack information might be incomplete in case of stripped binaries. Implementation details:

  • Not implemented for Android, iOS, QNX and UWP platforms.
  • On non-Windows platform, this function is a wrapper to backtrace() system call.
  • On Windows (Win32) platform, the function loads DbgHelp.dll dynamically, and no stack will be provided if this or companion libraries (SymSrv.dll, SrcSrv.dll, etc.) will not be found; .pdb symbols should be provided on Windows platform to retrieve a meaningful stack; only x86_64 CPU architecture is currently implemented.
    Parameters
    theBuffer[in] [out] message buffer to extend
    theBufferSize[in] message buffer size
    theNbTraces[in] maximum number of stack traces
    theContext[in] optional platform-dependent frame context; in case of DbgHelp (Windows) should be a pointer to CONTEXT
    theNbTopSkip[in] number of traces on top of the stack to skip
    Returns
    TRUE on success

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