Open CASCADE Technology  7.8.1
Public Types | Static Public Member Functions
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  AllocatorType { AllocatorType::NATIVE = 0, AllocatorType::OPT = 1, AllocatorType::TBB = 2, AllocatorType::JEMALLOC = 3 }
 Enumiration of possible allocator types. More...
 

Static Public Member Functions

static AllocatorType GetAllocatorType ()
 Returns default allocator type. More...
 
static Standard_Address Allocate (const Standard_Size theSize)
 Allocates memory blocks theSize - bytes to allocate. More...
 
static Standard_Address AllocateOptimal (const Standard_Size theSize)
 Allocates memory blocks theSize - bytes to allocate. More...
 
static void Free (const Standard_Address thePtr)
 Deallocates memory blocks. More...
 
template<typename T >
static void Free (T *&thePtr)
 Template version of function Free(), nullifies the argument pointer. More...
 
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. More...
 
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. More...
 
static void FreeAligned (const Standard_Address thePtrAligned)
 Deallocates memory blocks. More...
 
template<typename T >
static void FreeAligned (T *&thePtrAligned)
 Template version of function FreeAligned(), nullifies the argument pointer. More...
 
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. More...
 
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: More...
 

Detailed Description

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

Member Enumeration Documentation

Enumiration of possible allocator types.

Enumerator
NATIVE 
OPT 
TBB 
JEMALLOC 

Member Function Documentation

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

Allocates memory blocks theSize - bytes to allocate.

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
static Standard_Address Standard::AllocateOptimal ( const Standard_Size  theSize)
static

Allocates memory blocks theSize - bytes to allocate.

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

Deallocates memory blocks.

Parameters
thePtr- previously allocated memory block to be freed
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
static void Standard::FreeAligned ( const Standard_Address  thePtrAligned)
static

Deallocates memory blocks.

Parameters
thePtrAlignedthe memory block previously allocated with AllocateAligned()
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()
static AllocatorType Standard::GetAllocatorType ( )
static

Returns default allocator type.

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.

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.

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: