Yate
Public Member Functions | Static Public Member Functions

DataBlock Class Reference

A class that holds just a block of raw data. More...

#include <yateclass.h>

Inheritance diagram for DataBlock:
GenObject Base64 SS7MSU

List of all members.

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)
DataBlockassign (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 truncate (unsigned int len)
void cut (int len)
int operator[] (signed int index) const
int operator[] (unsigned int index) const
DataBlockoperator= (const DataBlock &value)
DataBlockoperator+= (const DataBlock &value)
DataBlockoperator+= (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 DataBlockempty ()

Detailed Description

A class that holds just a block of raw data.

The DataBlock holds a data buffer with no specific formatting.


Constructor & Destructor Documentation

DataBlock ( )

Constructs an empty data block

DataBlock ( const DataBlock value)

Copy constructor

DataBlock ( void *  value,
unsigned int  len,
bool  copyData = true 
)

Constructs an initialized data block

Parameters:
valueData to assign, may be NULL to fill with zeros
lenLength of data, may be zero (then value is ignored)
copyDataTrue to make a copy of the data, false to just insert the pointer
virtual ~DataBlock ( ) [virtual]

Destroys the data, disposes the memory.


Member Function Documentation

void append ( void *  value,
unsigned int  len 
) [inline]

Append data to the current block

Parameters:
valueData to append
lenLength of data

References DataBlock::clear().

void append ( const DataBlock value)

Append data to the current block

Parameters:
valueData to append
void append ( const String value)

Append a String to the current block

Parameters:
valueString to append
DataBlock& assign ( void *  value,
unsigned int  len,
bool  copyData = true 
)

Assign data to the object

Parameters:
valueData to assign, may be NULL to fill with zeros
lenLength of data, may be zero (then value is ignored)
copyDataTrue to make a copy of the data, false to just insert the pointer

Referenced by ISDNFrame::getData().

int at ( unsigned int  offs,
int  defvalue = -1 
) const [inline]

Get the value of a single byte inside the stored data

Parameters:
offsByte offset inside the stored data
defvalueDefault value to return if offset is outside data
Returns:
Byte value at offset (0-255) or defvalue if offset outside data

Referenced by ISDNFrame::getAi(), and ISDNFrame::getType().

void clear ( bool  deleteData = true)

Clear the data and optionally free the memory

Parameters:
deleteDataTrue 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

Parameters:
srcSource data block
sFormatName of the source format
dFormatName of the destination format
maxlenMaximum amount to convert, 0 to use source
Returns:
True if converted successfully, false on failure
void cut ( int  len)

Cut off a number of bytes from the data block

Parameters:
lenAmount to cut, positive to cut from end, negative to cut from start of block
void* data ( ) const [inline]
unsigned char* data ( unsigned int  offs,
unsigned int  len = 1 
) const [inline]

Get a pointer to a byte range inside the stored data.

Parameters:
offsByte offset inside the stored data
lenNumber of bytes that must be valid starting at offset
Returns:
A pointer to the data or NULL if the range is not available.
static const DataBlock& empty ( ) [static]

A static empty data block

virtual void* getObject ( const String name) const [virtual]

Get a pointer to a derived class given that class name

Parameters:
nameName of the class we are asking for
Returns:
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from GenObject.

void insert ( const DataBlock value)

Insert data before the current block

Parameters:
valueData to insert
unsigned int length ( ) const [inline]

Get the length of the stored data.

Returns:
The length of the stored data, zero for NULL.

Referenced by Cipher::decrypt(), SignallingDumpable::dump(), SignallingDumper::dump(), Cipher::encrypt(), Cipher::initVector(), Cipher::setKey(), SHA1::update(), MD5::update(), and Stream::writeData().

bool null ( ) const [inline]

Checks if the block holds a NULL pointer.

Returns:
True if the block holds NULL, false otherwise.
DataBlock& operator+= ( const String value) [inline]

Appending operator for Strings.

DataBlock& operator+= ( const DataBlock value) [inline]

Appending operator.

DataBlock& operator= ( const DataBlock value)

Assignment operator.

Reimplemented in SS7MSU.

Referenced by SS7MSU::operator=().

int operator[] ( unsigned int  index) const [inline]

Byte indexing operator with unsigned parameter

Parameters:
indexIndex of the byte to retrieve
Returns:
Byte value at offset (0-255) or -1 if index outside data
int operator[] ( signed int  index) const [inline]

Byte indexing operator with signed parameter

Parameters:
indexIndex of the byte to retrieve
Returns:
Byte value at offset (0-255) or -1 if index outside data
String sqlEscape ( char  extraEsc) const

Create an escaped string suitable for use in SQL queries

Parameters:
extraEscCharacter to escape other than the default ones
Returns:
A string with binary zeros and other special characters escaped
void truncate ( unsigned int  len)

Truncate the data block

Parameters:
lenThe 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

Parameters:
dataInput character string
lenLength of the input string
sepSeparator character used between octets. 0 if no separator is expected
Returns:
True if the input string was succesfully parsed, false otherwise

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