Open CASCADE Technology 7.9.0
 
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Loading...
Searching...
No Matches
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
    [in]
    out] theBuffer message buffer to extend
    Parameters
    [in]theBufferSizemessage buffer size
    [in]theNbTracesmaximum number of stack traces
    [in]theContextoptional platform-dependent frame context; in case of DbgHelp (Windows) should be a pointer to CONTEXT
    [in]theNbTopSkipnumber of traces on top of the stack to skip
    Returns
    TRUE on success

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