Yate
|
A class that holds just a block of raw data. More...
#include <yateclass.h>
Public Member Functions | |
DataBlock () | |
DataBlock (const DataBlock &value) | |
DataBlock (void *value, unsigned int len, bool copyData=true) | |
virtual | ~DataBlock () |
virtual void * | getObject (const String &name) const |
void * | data () const |
unsigned char * | data (unsigned int offs, unsigned int len=1) const |
int | at (unsigned int offs, int defvalue=-1) const |
bool | null () const |
unsigned int | length () const |
void | clear (bool deleteData=true) |
DataBlock & | assign (void *value, unsigned int len, bool copyData=true) |
void | append (void *value, unsigned int len) |
void | append (const DataBlock &value) |
void | append (const String &value) |
void | insert (const DataBlock &value) |
void | resize (unsigned int len) |
void | truncate (unsigned int len) |
void | cut (int len) |
int | operator[] (signed int index) const |
int | operator[] (unsigned int index) const |
DataBlock & | operator= (const DataBlock &value) |
DataBlock & | operator+= (const DataBlock &value) |
DataBlock & | operator+= (const String &value) |
bool | convert (const DataBlock &src, const String &sFormat, const String &dFormat, unsigned maxlen=0) |
bool | unHexify (const char *data, unsigned int len, char sep=0) |
String | sqlEscape (char extraEsc) const |
Static Public Member Functions | |
static const DataBlock & | empty () |
A class that holds just a block of raw data.
The DataBlock holds a data buffer with no specific formatting.
DataBlock | ( | ) |
Constructs an empty data block
DataBlock | ( | void * | value, |
unsigned int | len, | ||
bool | copyData = true |
||
) |
Constructs an initialized data block
value | Data to assign, may be NULL to fill with zeros |
len | Length of data, may be zero (then value is ignored) |
copyData | True to make a copy of the data, false to just insert the pointer |
virtual ~DataBlock | ( | ) | [virtual] |
Destroys the data, disposes the memory.
void append | ( | void * | value, |
unsigned int | len | ||
) | [inline] |
Append data to the current block
value | Data to append |
len | Length of data |
References DataBlock::clear().
Append data to the current block
value | Data to append |
Assign data to the object
value | Data to assign, may be NULL to fill with zeros |
len | Length of data, may be zero (then value is ignored) |
copyData | True to make a copy of the data, false to just insert the pointer |
Referenced by SS7SCCPDataSegment::fillSegment(), ISDNFrame::getData(), and IAXInfoElementBinary::setData().
int at | ( | unsigned int | offs, |
int | defvalue = -1 |
||
) | const [inline] |
Get the value of a single byte inside the stored data
offs | Byte offset inside the stored data |
defvalue | Default value to return if offset is outside data |
Referenced by ISDNFrame::getAi(), and ISDNFrame::getType().
void clear | ( | bool | deleteData = true | ) |
Clear the data and optionally free the memory
deleteData | True to free the deta block, false to just forget it |
Referenced by FSKModem::addRaw(), and DataBlock::append().
bool convert | ( | const DataBlock & | src, |
const String & | sFormat, | ||
const String & | dFormat, | ||
unsigned | maxlen = 0 |
||
) |
Convert data from a different format
src | Source data block |
sFormat | Name of the source format |
dFormat | Name of the destination format |
maxlen | Maximum amount to convert, 0 to use source |
void cut | ( | int | len | ) |
Cut off a number of bytes from the data block
len | Amount to cut, positive to cut from end, negative to cut from start of block |
void* data | ( | ) | const [inline] |
Get a pointer to the stored data.
Referenced by Cipher::decrypt(), SignallingDumper::dump(), SignallingDumpable::dump(), Cipher::encrypt(), SS7SCCPDataSegment::fillSegment(), Cipher::initVector(), Cipher::setKey(), MD5::update(), SHA1::update(), Compressor::writeComp(), Stream::writeData(), Compressor::writeDecomp(), and IAXEngine::writeSocket().
unsigned char* data | ( | unsigned int | offs, |
unsigned int | len = 1 |
||
) | const [inline] |
Get a pointer to a byte range inside the stored data.
offs | Byte offset inside the stored data |
len | Number of bytes that must be valid starting at offset |
Get a pointer to a derived class given that class name
name | Name of the class we are asking for |
Reimplemented from GenObject.
Insert data before the current block
value | Data to insert |
unsigned int length | ( | ) | const [inline] |
Get the length of the stored data.
Referenced by Cipher::decrypt(), SignallingDumper::dump(), SignallingDumpable::dump(), Cipher::encrypt(), Cipher::initVector(), Cipher::setKey(), MD5::update(), SHA1::update(), Compressor::writeComp(), Stream::writeData(), Compressor::writeDecomp(), and IAXEngine::writeSocket().
bool null | ( | ) | const [inline] |
Checks if the block holds a NULL pointer.
int operator[] | ( | signed int | index | ) | const [inline] |
Byte indexing operator with signed parameter
index | Index of the byte to retrieve |
int operator[] | ( | unsigned int | index | ) | const [inline] |
Byte indexing operator with unsigned parameter
index | Index of the byte to retrieve |
void resize | ( | unsigned int | len | ) | [inline] |
Resize (re-alloc or free) this block if required size is not the same as the current one
len | Required block size |
Create an escaped string suitable for use in SQL queries
extraEsc | Character to escape other than the default ones |
void truncate | ( | unsigned int | len | ) |
Truncate the data block
len | The maximum length to keep |
bool unHexify | ( | const char * | data, |
unsigned int | len, | ||
char | sep = 0 |
||
) |
Build this data block from a hexadecimal string representation. Each octet must be represented in the input string with 2 hexadecimal characters. If a separator is specified, the octets in input string must be separated using exactly 1 separator. Only 1 leading or 1 trailing separators are allowed
data | Input character string |
len | Length of the input string |
sep | Separator character used between octets. 0 if no separator is expected |