RSS Git Download  Clone
Raw View History
Blames found: 13 Mode: text/x-c++src Binary: false


Hang on, we reloading big blames...
/******************************************************************************* * BRefData.h Referenced data storage * T.Barnaby, Beam Ltd, 6/10/94
* Copyright (c) 2012 All Right Reserved, Beam Ltd, http://www.beam.ltd.uk
******************************************************************************* */ #ifndef BREFDATA_H #define BREFDATA_H 1
#include <BAtomicCount.h> /// 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.
class BRefData { public: BRefData(); BRefData(int len); BRefData(const BRefData& refData); ~BRefData();
BRefData* copy(); ///< Create a copy of this reference for writing, if necessary BRefData* addRef(); ///< Increment the reference counter int deleteRef(); ///< Decrement the reference counter char* data(){ return (char*)odata; } ///< Return the raw data pointer int len(){ return olen; } ///< Return the length in bytes
BRefData& operator=(const BRefData& refData);
void setLen(int len); ///< Set the length in bytes. Note should only be used if orefCount = 1
private:
BAtomicCount orefCount; ///< The reference count, how many users int olen; ///< The actual length of data in oData void* odata; ///< Pointer to the data
}; #endif