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:
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.


Member Function Documentation

void append ( const String value  ) 

Append a String to the current block

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

Append data to the current block

Parameters:
value Data to append
void append ( void *  value,
unsigned int  len 
) [inline]

Append data to the current block

Parameters:
value Data to append
len Length of data

References DataBlock::clear().

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

Assign data to the object

Parameters:
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 ISDNFrame::getData().

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

Get the value of a single byte inside the stored data

Parameters:
offs Byte offset inside the stored data
defvalue Default 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:
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

Parameters:
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
Returns:
True if converted successfully, false on failure
void cut ( int  len  ) 

Cut off a number of bytes from the data block

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

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

Parameters:
offs Byte offset inside the stored data
len Number of bytes that must be valid starting at offset
Returns:
A pointer to the data or NULL if the range is not available.
void* data (  )  const [inline]
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:
name Name 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:
value Data 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:
index Index 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:
index Index 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:
extraEsc Character 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:
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

Parameters:
data Input character string
len Length of the input string
sep Separator 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:
Generated on Thu Apr 8 18:22:35 2010 for Yate by  doxygen 1.6.3