Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes
NCollection_Buffer Class Reference

Low-level buffer object. More...

#include <NCollection_Buffer.hxx>

Inheritance diagram for NCollection_Buffer:
Inheritance graph
[legend]

Public Member Functions

 NCollection_Buffer (const occ::handle< NCollection_BaseAllocator > &theAlloc, const size_t theSize=0, uint8_t *theData=nullptr)
 Default constructor. When theData is NULL but theSize is not 0 than buffer of specified size will be allocated.
 
 ~NCollection_Buffer () override
 Destructor.
 
const uint8_tData () const noexcept
 
uint8_tChangeData () noexcept
 
bool IsEmpty () const noexcept
 
size_t Size () const noexcept
 Return buffer length in bytes.
 
const occ::handle< NCollection_BaseAllocator > & Allocator () const noexcept
 
void SetAllocator (const occ::handle< NCollection_BaseAllocator > &theAlloc)
 Assign new buffer allocator with de-allocation of buffer.
 
bool Allocate (const size_t theSize)
 Allocate the buffer.
 
void Free ()
 De-allocate buffer.
 
virtual void DumpJson (Standard_OStream &theOStream, int theDepth=-1) const
 Dumps the content of me into the stream.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()=default
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
bool IsInstance (const char *const theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
bool IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
bool IsKind (const char *const theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
int GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
 
int DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Protected Attributes

uint8_tmyData
 data pointer
 
size_t mySize
 buffer length in bytes
 
occ::handle< NCollection_BaseAllocatormyAllocator
 buffer allocator
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Detailed Description

Low-level buffer object.

Constructor & Destructor Documentation

◆ NCollection_Buffer()

NCollection_Buffer::NCollection_Buffer ( const occ::handle< NCollection_BaseAllocator > & theAlloc,
const size_t theSize = 0,
uint8_t * theData = nullptr )
inline

Default constructor. When theData is NULL but theSize is not 0 than buffer of specified size will be allocated.

Parameters
theAllocmemory allocator
theSizebuffer size
theDatabuffer data allocated by theAlloc

◆ ~NCollection_Buffer()

NCollection_Buffer::~NCollection_Buffer ( )
inlineoverride

Destructor.

Member Function Documentation

◆ Allocate()

bool NCollection_Buffer::Allocate ( const size_t theSize)
inline

Allocate the buffer.

Parameters
theSizebuffer length in bytes

◆ Allocator()

const occ::handle< NCollection_BaseAllocator > & NCollection_Buffer::Allocator ( ) const
inlinenoexcept
Returns
buffer allocator

◆ ChangeData()

uint8_t * NCollection_Buffer::ChangeData ( )
inlinenoexcept
Returns
buffer data

◆ Data()

const uint8_t * NCollection_Buffer::Data ( ) const
inlinenoexcept
Returns
buffer data

◆ DumpJson()

virtual void NCollection_Buffer::DumpJson ( Standard_OStream & theOStream,
int theDepth = -1 ) const
inlinevirtual

Dumps the content of me into the stream.

Reimplemented in Graphic3d_BoundBuffer, Graphic3d_Buffer, and Graphic3d_IndexBuffer.

◆ Free()

void NCollection_Buffer::Free ( )
inline

De-allocate buffer.

◆ IsEmpty()

bool NCollection_Buffer::IsEmpty ( ) const
inlinenoexcept
Returns
true if buffer is not allocated

◆ SetAllocator()

void NCollection_Buffer::SetAllocator ( const occ::handle< NCollection_BaseAllocator > & theAlloc)
inline

Assign new buffer allocator with de-allocation of buffer.

◆ Size()

size_t NCollection_Buffer::Size ( ) const
inlinenoexcept

Return buffer length in bytes.

Field Documentation

◆ myAllocator

occ::handle<NCollection_BaseAllocator> NCollection_Buffer::myAllocator
protected

buffer allocator

◆ myData

uint8_t* NCollection_Buffer::myData
protected

data pointer

◆ mySize

size_t NCollection_Buffer::mySize
protected

buffer length in bytes


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