Cern
LibTmsApi 2.3.0

#include <BRefData.h>

Public Member Functions

 BRefData ()
 
 BRefData (int len)
 
 BRefData (const BRefData &refData)
 
 ~BRefData ()
 
BRefDatacopy ()
 Create a copy of this reference for writing, if necessary

 
BRefDataaddRef ()
 Increment the reference counter.
 
int deleteRef ()
 Decrement the reference counter.
 
char * data ()
 Return the raw data pointer.
 
int len ()
 Return the length in bytes.
 
BRefDataoperator= (const BRefData &refData)
 
void setLen (int len)
 Set the length in bytes. Note should only be used if orefCount = 1.
 

Private Attributes

BAtomicCount orefCount
 The reference count, how many users.
 
int olen
 The actual length of data in oData.
 
void * odata
 Pointer to the data.
 

Detailed Description

Referenced data storage. This is Thread safe to a degree. The reference counting is protected. However, setLen() is not and should be protected at a higher level.

Constructor & Destructor Documentation

◆ BRefData() [1/3]

BRefData::BRefData ( )

◆ BRefData() [2/3]

BRefData::BRefData ( int  len)

◆ BRefData() [3/3]

BRefData::BRefData ( const BRefData refData)

◆ ~BRefData()

BRefData::~BRefData ( )

Member Function Documentation

◆ addRef()

BRefData * BRefData::addRef ( )

Increment the reference counter.

◆ copy()

BRefData * BRefData::copy ( )

Create a copy of this reference for writing, if necessary

◆ data()

char * BRefData::data ( )
inline

Return the raw data pointer.

◆ deleteRef()

int BRefData::deleteRef ( )

Decrement the reference counter.

◆ len()

int BRefData::len ( )
inline

Return the length in bytes.

◆ operator=()

BRefData & BRefData::operator= ( const BRefData refData)

◆ setLen()

void BRefData::setLen ( int  len)

Set the length in bytes. Note should only be used if orefCount = 1.

Member Data Documentation

◆ odata

void* BRefData::odata
private

Pointer to the data.

◆ olen

int BRefData::olen
private

The actual length of data in oData.

◆ orefCount

BAtomicCount BRefData::orefCount
private

The reference count, how many users.


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