![]() |
The Gaudi Framework
v36r9p1 (5c15b2bb)
|
#include <GaudiKernel/StreamBuffer.h>
Classes | |
class | ContainedLink |
Definition of the contained link set. More... | |
class | DataIO |
A small base class to handle generic data streaming. More... | |
class | IdentifiedLink |
Definition of the contained link set. More... | |
class | Istream |
Reader for standard input streams. More... | |
class | Ostream |
Writer for standard output streams. More... | |
Public Types | |
enum | Mode { UNINITIALIZED, READING, WRITING } |
Streamer mode. More... | |
enum | SwapAction { SINGLE_BYTE, SWAP, NOSWAP } |
Data Sawp actions. More... | |
enum | State { INVALID = -1, VALID } |
Link state defintions. More... | |
typedef std::vector< ContainedLink > | ContainedLinks |
typedef std::vector< IdentifiedLink > | IdentifiedLinks |
Definition of the identifiable link set. More... | |
typedef void(* | AnalyzeFunction) (const void *data, int siz, const std::type_info &type) |
Definition of the buffer analyzer. More... | |
Public Member Functions | |
StreamBuffer (bool do_swap=true) | |
Standard constructor. More... | |
virtual | ~StreamBuffer () |
Standard destructor. More... | |
const char * | data () const |
Read access to data buffer. More... | |
char * | data () |
write access to data buffer More... | |
void | erase () |
Reset the buffer. More... | |
char * | adopt () const |
Remove the data buffer and pass it to client. It's the client responsability to free the memory. More... | |
void | reserve (long len) |
Reserve buffer space; Default: 16 k buffer size. More... | |
void | extend (long len) |
Extend the buffer. More... | |
long | size () const |
Total buffer size. More... | |
ContainedLinks & | containedLinks () |
Access to contained links. More... | |
const ContainedLinks & | containedLinks () const |
CONST Access to contained links. More... | |
IdentifiedLinks & | identifiedLinks () |
Access to identified links. More... | |
const IdentifiedLinks & | identifiedLinks () const |
CONST Access to identified links. More... | |
void | setMode (Mode m) |
Set mode of the stream and allocate buffer. More... | |
bool | isReading () const |
Get stream buffer state. More... | |
bool | isWriting () const |
Get stream buffer state. More... | |
long | buffPointer () const |
Retrieve current buffer pointer. More... | |
void | setBuffPointer (long ptr) |
Retrieve current buffer pointer. More... | |
void | setAnalyzer (AnalyzeFunction fun=nullptr) |
Enable user analysis function. More... | |
void | swapToBuffer (const void *source, int siz) |
Swap buffers: int, long, short, float and double. More... | |
void | swapFromBuffer (void *target, int siz) |
Swap buffers: int, long, short, float and double. More... | |
StreamBuffer & | writeBytes (const char *str, long len) |
Write string to output stream. More... | |
void | getIdentifiedLink (DataObject *&pObject, long &hint) |
void | addIdentifiedLink (const DataObject *pObject, long hint) |
void | getContainedLink (ContainedObject *&pObject, long &hint, long &link) |
void | addContainedLink (const ContainedObject *pObject, long hint, long link) |
StreamBuffer & | operator<< (long long data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (long long &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (int data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (int &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (unsigned int data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (unsigned int &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (long data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (long &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (unsigned long data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (unsigned long &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (short data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (short &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (unsigned short data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (unsigned short &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (char data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (char &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (unsigned char data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (unsigned char &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (float data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (float &data) |
Input Streamer. More... | |
StreamBuffer & | operator<< (double data) |
Output Streamer. More... | |
StreamBuffer & | operator>> (double &data) |
Input Streamer. More... | |
StreamBuffer & | operator>> (char *data) |
Streamer to read strings in (char*) format. More... | |
StreamBuffer & | operator<< (const char *data) |
Streamer to write strings in (char*) format. More... | |
StreamBuffer & | operator>> (std::string &data) |
Streamer to read strings in (std::string) format. More... | |
StreamBuffer & | operator<< (const std::string &data) |
Streamer to write strings in (std::string) format. More... | |
template<class TYPE > | |
StreamBuffer & | operator>> (TYPE *&refpObject) |
Streamer to read links to contained or identified objects. More... | |
StreamBuffer & | operator<< (const ContainedObject *pObject) |
Streamer to write links to contained objects. More... | |
StreamBuffer & | operator<< (const DataObject *pObject) |
Streamer to write links to identified objects. More... | |
void | serialize (DataIO &ioObject) |
Serialize the buffer using an IO object. More... | |
Protected Member Functions | |
SwapAction | swapBuffer (int siz) const |
Check for byte swapping. More... | |
template<class TYPE > | |
StreamBuffer & | getObjectPointer (const DataObject *, TYPE *&refpObject) |
Helper to distinguish between identified pointers and contained pointers. More... | |
template<class TYPE > | |
StreamBuffer & | getObjectPointer (const ContainedObject *, TYPE *&refpObject) |
Helper to distinguish between identified pointers and contained pointers. More... | |
Protected Attributes | |
Mode | m_mode = UNINITIALIZED |
Boolean indicating wether the stream is in read or write mode. More... | |
long | m_pointer = 0 |
Current buffer pointer. More... | |
long | m_length = 0 |
Total buffer length. More... | |
char * | m_buffer = nullptr |
Pointer to heap buffer. More... | |
bool | m_swapEnabled = true |
Flag indicating swapping. More... | |
ContainedLinks | m_containedLinks |
Container with links to contained objects. More... | |
IdentifiedLinks | m_identifiedLinks |
Container with links to contained objects. More... | |
AnalyzeFunction | m_analyzer = nullptr |
Hook function for analysis of data to the stream. More... | |
Friends | |
class | DataObject |
DataObject is friend. More... | |
The stream buffer is a small object collecting object data. The basic idea behind the StreamBuffer is generic object conversion. The StreamBuffer acts as a byte stream (hence inheriting from a std::string: DP: this is not true anymore and it is not a bad thing in my opinion) and stores any information streamed to the buffer. Since the information must be represented in a generic way on the fly byte swapping is performed. However, not only primitive data can be stored in the buffer, but also pointers to DataObjects (symbolic links) and pointers to contained objects. Automatically during serialization the persistent references to the corresponding objects and containers must be stored. These objects are accessible from the StreamBuffer object.
"On the fly" data conversion to non persistent
Definition at line 51 of file StreamBuffer.h.
typedef void( * StreamBuffer::AnalyzeFunction) (const void *data, int siz, const std::type_info &type) |
Definition of the buffer analyzer.
Definition at line 146 of file StreamBuffer.h.
Definition at line 142 of file StreamBuffer.h.
Definition of the identifiable link set.
Definition at line 144 of file StreamBuffer.h.
enum StreamBuffer::Mode |
Streamer mode.
Enumerator | |
---|---|
UNINITIALIZED | |
READING | |
WRITING |
Definition at line 117 of file StreamBuffer.h.
enum StreamBuffer::State |
|
inline |
|
inlinevirtual |
|
inline |
Definition at line 302 of file StreamBuffer.h.
|
inline |
Definition at line 291 of file StreamBuffer.h.
|
inline |
Remove the data buffer and pass it to client. It's the client responsability to free the memory.
Definition at line 213 of file StreamBuffer.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Extend the buffer.
Definition at line 230 of file StreamBuffer.h.
|
inline |
Definition at line 295 of file StreamBuffer.h.
|
inline |
Definition at line 285 of file StreamBuffer.h.
|
inlineprotected |
Helper to distinguish between identified pointers and contained pointers.
This entry resolves contained pointers (= Pointers to ContainedObject instances.)
Definition at line 193 of file StreamBuffer.h.
|
inlineprotected |
Helper to distinguish between identified pointers and contained pointers.
This entry resolves identified pointers (= Pointers to DataObject instances.)
Definition at line 182 of file StreamBuffer.h.
|
inline |
|
inline |
|
inline |
Get stream buffer state.
Definition at line 260 of file StreamBuffer.h.
|
inline |
Get stream buffer state.
Definition at line 263 of file StreamBuffer.h.
|
inline |
|
inline |
|
inline |
Streamer to write links to contained objects.
Links to contained objects are not stored immediately, but collected instead and analyzed later.
pObject | Pointer to object to be loaded. |
Definition at line 504 of file StreamBuffer.h.
|
inline |
Streamer to write links to identified objects.
Links to identified objects are not stored immediately, but collected instead and analyzed later.
pObject | Pointer to object to be loaded. |
Definition at line 516 of file StreamBuffer.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Input Streamer.
Definition at line 414 of file StreamBuffer.h.
|
inline |
|
inline |
Input Streamer.
Definition at line 447 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 436 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 348 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 370 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 337 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 392 of file StreamBuffer.h.
|
inline |
Streamer to read strings in (std::string) format.
Definition at line 470 of file StreamBuffer.h.
|
inline |
Streamer to read links to contained or identified objects.
The specified internal function call distinguishes between contained and identified objects.
refpObject | Reference to pointer to object to be loaded. |
Definition at line 494 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 425 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 359 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 381 of file StreamBuffer.h.
|
inline |
Input Streamer.
Definition at line 403 of file StreamBuffer.h.
|
inline |
|
inline |
Serialize the buffer using an IO object.
The streambuffer object will make use of a DataIO object, which can be specialized for streaming to any representation like e.g. disk files, Root files, Objectivity etc.
ioObject | Reference to data IO object. |
Definition at line 528 of file StreamBuffer.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotected |
|
inline |
Swap buffers: int, long, short, float and double.
Swap bytes from the stream buffer to target buffer with arbitray size.
Definition at line 591 of file StreamBuffer.h.
|
inline |
Swap buffers: int, long, short, float and double.
Swap bytes from a source buffer to the stream buffer with arbitray size.
Definition at line 565 of file StreamBuffer.h.
|
inline |
|
friend |
DataObject is friend.
Definition at line 148 of file StreamBuffer.h.
|
protected |
Hook function for analysis of data to the stream.
Definition at line 173 of file StreamBuffer.h.
|
mutableprotected |
Pointer to heap buffer.
Definition at line 161 of file StreamBuffer.h.
|
mutableprotected |
Container with links to contained objects.
Definition at line 167 of file StreamBuffer.h.
|
mutableprotected |
Container with links to contained objects.
Definition at line 170 of file StreamBuffer.h.
|
mutableprotected |
Total buffer length.
Definition at line 158 of file StreamBuffer.h.
|
protected |
Boolean indicating wether the stream is in read or write mode.
Definition at line 152 of file StreamBuffer.h.
|
mutableprotected |
Current buffer pointer.
Definition at line 155 of file StreamBuffer.h.
|
protected |
Flag indicating swapping.
Definition at line 164 of file StreamBuffer.h.