Yate
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SliceVector< Obj > Class Template Reference

A slice vector. More...

#include <yatemath.h>

Inheritance diagram for SliceVector< Obj >:
MathVectorBase GenObject BitVector

Public Member Functions

 SliceVector ()
 
 SliceVector (const SliceVector &other)
 
 SliceVector (unsigned int len, const Obj *buf=0, unsigned int maxLen=0)
 
 SliceVector (const SliceVector &v1, const SliceVector &v2)
 
 SliceVector (const SliceVector &v1, const SliceVector &v2, const SliceVector &v3)
 
 SliceVector (const SliceVector &other, unsigned int offs, unsigned int len=0)
 
virtual ~SliceVector ()
 
Obj * data (unsigned int offs, unsigned int len)
 
const Obj * data (unsigned int offs, unsigned int len) const
 
Obj * data (unsigned int offs=0)
 
const Obj * data (unsigned int offs=0) const
 
Obj * data (unsigned int offs, unsigned int len, Obj *&eod)
 
const Obj * data (unsigned int offs, unsigned int len, const Obj *&eod) const
 
unsigned int length () const
 
unsigned int maxLen () const
 
unsigned int size () const
 
unsigned int available (unsigned int offs, int len=-1) const
 
unsigned int availableClamp (unsigned int clamp, unsigned int offs=0, int len=-1) const
 
virtual unsigned int vectorSize () const
 
bool resize (unsigned int len)
 
void resizeMax ()
 
void steal (SliceVector &other)
 
void resetStorage (unsigned int len, unsigned int maxLen=0)
 
bool setSlice (const SliceVector &other, unsigned int offs=0, unsigned int len=0)
 
SliceVector head (unsigned int len) const
 
bool head (SliceVector &dest, unsigned int len) const
 
SliceVector tail (unsigned int len) const
 
bool tail (SliceVector &dest, unsigned int len) const
 
SliceVector slice (unsigned int offs, unsigned int len) const
 
bool slice (SliceVector &dest, unsigned int offs, unsigned int len=0) const
 
bool copy (const SliceVector &src, unsigned int len, unsigned int offs=0, unsigned int srcOffs=0)
 
void bzero (unsigned int offs, unsigned int len)
 
void bzero ()
 
void fill (const Obj &value)
 
void apply (void(*func)(Obj &))
 
Obj sum () const
 
Obj sumApply (Obj(*func)(const Obj &)) const
 
float sumApplyF (float(*func)(const Obj &)) const
 
bool sum (const SliceVector &other)
 
void sum (const Obj &value)
 
bool sub (const SliceVector &other)
 
void sub (const Obj &value)
 
bool mul (const SliceVector &other)
 
void mul (const Obj &value)
 
void mul (float value)
 
Obj & operator[] (unsigned int index)
 
const Obj & operator[] (unsigned int index) const
 
Obj & operator[] (signed int index)
 
const Obj & operator[] (signed int index) const
 
bool operator== (const SliceVector &other) const
 
bool operator!= (const SliceVector &other) const
 
SliceVectoroperator= (const SliceVector &other)
 
SliceVectoroperator+= (const SliceVector &other)
 
SliceVectoroperator+= (const Obj &value)
 
SliceVectoroperator-= (const SliceVector &other)
 
SliceVectoroperator-= (const Obj &value)
 
SliceVectoroperator*= (const SliceVector &other)
 
SliceVectoroperator*= (const Obj &value)
 
SliceVectoroperator*= (float value)
 
bool equals (const SliceVector &other) const
 
Stringdump (String &buf, String &(*func)(String &s, const Obj &o, const char *sep, const char *fmt), const char *sep=",", const char *fmt=0) const
 
Stringdump (String &buf, unsigned int lineLen, String &(*func)(String &s, const Obj &o, const char *sep, const char *fmt), unsigned int offset=0, const char *linePrefix=0, const char *suffix="\r\n", const char *sep=",", const char *fmt=0) const
 
Stringhexify (String &buf, char sep=0) const
 
StringdumpHex (String &buf, unsigned int lineLen, unsigned int offset=0, const char *linePrefix=0, const char *suffix="\r\n") const
 
int unHexify (const char *str, unsigned int len, int sep=255)
 
int unHexify (const String &str, int sep=255)
 
- Public Member Functions inherited from MathVectorBase
virtual ~MathVectorBase ()
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual bool alive () const
 
virtual void destruct ()
 
virtual const StringtoString () const
 
virtual const StringtraceId () const
 
virtual void * getObject (const String &name) const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 

Static Public Member Functions

static unsigned int objSize ()
 
static unsigned int size (unsigned int len)
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 

Protected Member Functions

Obj * end (Obj *start, unsigned int len)
 
const Obj * end (const Obj *start, unsigned int len) const
 
bool setData (Obj *data=0, unsigned int len=0, unsigned int maxLen=0)
 
bool initStorage (unsigned int len, const Obj *data=0, unsigned int maxLen=0)
 
bool initSlice (bool del, const SliceVector &other, unsigned int offs=0, unsigned int len=0)
 

Protected Attributes

RefStoragem_storage
 
Obj * m_data
 
unsigned int m_length
 
unsigned int m_maxLen
 

Detailed Description

template<class Obj>
class TelEngine::SliceVector< Obj >

A slice vector.

Template for vectors holding a fixed storage and a slice in it. This class works with objects not holding pointers: it uses memcpy to copy data

Constructor & Destructor Documentation

SliceVector ( )
inline
SliceVector ( const SliceVector< Obj > &  other)
inline

Copy constructor. Builds a slice of another vector

Parameters
otherOriginal vector
SliceVector ( unsigned int  len,
const Obj *  buf = 0,
unsigned int  maxLen = 0 
)
inlineexplicit

Constructor. Build the vector storage

Parameters
lenLength of data
bufOptional init buffer ('len' elements will be copied from it to storage)
maxLenOptional vector maximum length (it will be adjusted to be at least len)

References SliceVector< Obj >::maxLen().

SliceVector ( const SliceVector< Obj > &  v1,
const SliceVector< Obj > &  v2 
)
inlineexplicit

Constructor. Build a vector by concatenating two existing ones

Parameters
v1The first vector
v2The second vector

References SliceVector< Obj >::data(), SliceVector< Obj >::length(), SliceVector< Obj >::resizeMax(), RefStorage::set(), and SliceVector< Obj >::size().

SliceVector ( const SliceVector< Obj > &  v1,
const SliceVector< Obj > &  v2,
const SliceVector< Obj > &  v3 
)
inlineexplicit

Constructor. Build a vector by concatenating three existing ones

Parameters
v1The first vector
v2The second vector
v3The third vector

References SliceVector< Obj >::data(), SliceVector< Obj >::length(), SliceVector< Obj >::resizeMax(), RefStorage::set(), and SliceVector< Obj >::size().

SliceVector ( const SliceVector< Obj > &  other,
unsigned int  offs,
unsigned int  len = 0 
)
inlineexplicit

Constructor. Builds a slice of another vector

Parameters
otherOriginal vector
offsOffset in the original vector
lenThe number of elements (0 to use all available from offset)
virtual ~SliceVector ( )
inlinevirtual

Destructor

Member Function Documentation

void apply ( void(*)(Obj &)  func)
inline

Apply an unary function to all elements in this vector

Parameters
funcFunction to apply

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

unsigned int available ( unsigned int  offs,
int  len = -1 
) const
inline

Retrieve the available number of elements from given offset (not more than required number)

Parameters
offsThe offset
lenRequired number of elements (-1: all available from offset)
Returns
The available number of elements from given offset (may be less than required)

References SliceVector< Obj >::length().

Referenced by SliceVector< Obj >::availableClamp(), and SliceVector< Obj >::data().

unsigned int availableClamp ( unsigned int  clamp,
unsigned int  offs = 0,
int  len = -1 
) const
inline

Retrieve the available number of elements from given offset. Clamp the available number of elements to requested value

Parameters
clampMaximum number of elements to check
offsThe offset
lenRequired number of elements (-1: all available from offset)
Returns
The available number of elements from given offset

References SliceVector< Obj >::available().

void bzero ( unsigned int  offs,
unsigned int  len 
)
inline

Fill the buffer with 0

Parameters
offsThe offset
lenThe number of elements to retrieve (must not be 0)

References SliceVector< Obj >::data(), RefStorage::fill(), and SliceVector< Obj >::size().

void bzero ( )
inline
bool copy ( const SliceVector< Obj > &  src,
unsigned int  len,
unsigned int  offs = 0,
unsigned int  srcOffs = 0 
)
inline

Copies elements from another vector to this one. NOTE: This method don't check for overlapping data

Parameters
srcThe source vector
lenThe number of elements to copy
offsThe start index in our vector
srcOffsThe start index in the source vector
Returns
True on success, false on failure (not enough data in source vector or not enough space in this vector)

References RefStorage::copy(), SliceVector< Obj >::data(), and SliceVector< Obj >::size().

Obj* data ( unsigned int  offs,
unsigned int  len 
)
inline

Get a pointer to data if 'len' elements are available from offset

Parameters
offsThe offset
lenThe number of elements to retrieve (must not be 0)
Returns
A pointer to data at requested offset, NULL if there is not enough data available

References SliceVector< Obj >::length().

Referenced by SliceVector< Obj >::apply(), SliceVector< Obj >::bzero(), SliceVector< Obj >::copy(), SliceVector< Obj >::data(), SliceVector< Obj >::dump(), SliceVector< Obj >::equals(), SliceVector< Obj >::fill(), SliceVector< Obj >::hexify(), SliceVector< Obj >::mul(), SliceVector< Obj >::SliceVector(), SliceVector< Obj >::sub(), SliceVector< Obj >::sum(), SliceVector< Obj >::sumApply(), and SliceVector< Obj >::sumApplyF().

const Obj* data ( unsigned int  offs,
unsigned int  len 
) const
inline

Get a pointer to data if 'len' elements are available from offset

Parameters
offsThe offset
lenThe number of elements to retrieve (must not be 0)
Returns
A pointer to data at requested offset, NULL if there is not enough data available

References SliceVector< Obj >::length().

Obj* data ( unsigned int  offs = 0)
inline

Get a pointer to data from offset to vector end

Parameters
offsThe offset
Returns
A pointer to data at requested offset, NULL if there is no data available

References SliceVector< Obj >::available(), and SliceVector< Obj >::data().

const Obj* data ( unsigned int  offs = 0) const
inline

Get a pointer to data from offset to vector end

Parameters
offsThe offset
Returns
A pointer to data at requested offset, NULL if there is no data available

References SliceVector< Obj >::available(), and SliceVector< Obj >::data().

Obj* data ( unsigned int  offs,
unsigned int  len,
Obj *&  eod 
)
inline

Get a pointer to data from offset to vector end

Parameters
offsThe offset
lenThe number of elements to retrieve (must not be 0)
eodPointer to be filled with end of data element (pointer to first element after requested number of elements)
Returns
A pointer to data data from requested offset, NULL if there is not enough data available

References SliceVector< Obj >::data().

const Obj* data ( unsigned int  offs,
unsigned int  len,
const Obj *&  eod 
) const
inline

Get a pointer to data from offset to vector end

Parameters
offsThe offset
lenThe number of elements to retrieve (must not be 0)
eodPointer to be filled with end of data element (pointer to first element after requested number of elements)
Returns
A pointer to data data from requested offset, NULL if there is not enough data available

References SliceVector< Obj >::data().

String& dump ( String buf,
String &(*)(String &s, const Obj &o, const char *sep, const char *fmt)  func,
const char *  sep = ",",
const char *  fmt = 0 
) const
inline

Dump data to a string (append)

Parameters
bufDestination string
funcPointer to function who appends the object to a String (0 to dump all available from offset)
sepVector elements separator
fmtOptional format to use
Returns
Destination string address

References String::append(), SliceVector< Obj >::data(), and SliceVector< Obj >::length().

Referenced by SliceVector< Obj >::dump().

String& dump ( String buf,
unsigned int  lineLen,
String &(*)(String &s, const Obj &o, const char *sep, const char *fmt)  func,
unsigned int  offset = 0,
const char *  linePrefix = 0,
const char *  suffix = "\r\n",
const char *  sep = ",",
const char *  fmt = 0 
) const
inline

Dump this vector to string, split it and append lines to a buffer. Line prefix length is not included when line length is calculated. Separator length is included in line length

Parameters
bufDestination string
lineLenLine length in bytes
funcPointer to function who append the object to a String
offsetOffset in first line (if incomplete). No data will be added on first line if offset is greater then line length
linePrefixPrefix for new lines. Empty string to use the suffix
suffixString to always add to final result (even if no data dumped)
sepVector elements separator
fmtOptional format to use
Returns
Destination string address

References String::append(), SliceVector< Obj >::data(), SliceVector< Obj >::dump(), SliceVector< Obj >::length(), String::length(), and TelEngine::null().

String& dumpHex ( String buf,
unsigned int  lineLen,
unsigned int  offset = 0,
const char *  linePrefix = 0,
const char *  suffix = "\r\n" 
) const
inline

Hexify data, split it and append lines to a string

Parameters
bufDestination string
lineLenLine length, characters to copy
offsetOffset in first line (if incomplete). No data will be added on first line if offset is greater then line length
linePrefixPrefix for new lines. Set it to empty string or 0 to use the suffix
suffixEnd of line for the last line
Returns
Destination string address

References RefStorage::dumpSplit(), and SliceVector< Obj >::hexify().

bool equals ( const SliceVector< Obj > &  other) const
inline

Compare this vector to another one (compare storage)

Parameters
otherVector to compare with
Returns
True if they are equal

References SliceVector< Obj >::data(), RefStorage::equals(), SliceVector< Obj >::length(), and SliceVector< Obj >::size().

Referenced by SliceVector< Obj >::operator!=(), and SliceVector< Obj >::operator==().

void fill ( const Obj &  value)
inline

Fill the vector with a given value

Parameters
valueThe value to be set in this vector

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

SliceVector head ( unsigned int  len) const
inline

Retrieve vector head

Parameters
lenThe number of elements to retrieve
Returns
A vector containing the first elements of this vector

References SliceVector< Obj >::slice().

bool head ( SliceVector< Obj > &  dest,
unsigned int  len 
) const
inline

Retrieve vector head

Parameters
destDestination vector
lenThe number of elements to retrieve
Returns
True on success, false on failure (not enough data in our vector)

References SliceVector< Obj >::slice().

String& hexify ( String buf,
char  sep = 0 
) const
inline

Hexify data

Parameters
bufDestination string
sepOptional separator
Returns
Destination string address

References SliceVector< Obj >::data(), String::hexify(), and SliceVector< Obj >::size().

Referenced by SliceVector< Obj >::dumpHex().

unsigned int length ( ) const
inline
unsigned int maxLen ( ) const
inline

Get the maximum length of the vector

Returns
The maximum length of the vector (0 if the vector don't have a storage buffer)

Referenced by SliceVector< Obj >::resetStorage(), SliceVector< Obj >::resize(), SliceVector< Obj >::resizeMax(), and SliceVector< Obj >::SliceVector().

bool mul ( const SliceVector< Obj > &  other)
inline

Multiply this vector with another one

Parameters
otherVector to multiply with
Returns
True on sucess, false on failure (vectors don't have the same length)

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

Referenced by SliceVector< Obj >::operator*=().

void mul ( const Obj &  value)
inline

Multiply this vector with a value

Parameters
valueValue to multiply with

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

void mul ( float  value)
inline

Multiply this vector with a value

Parameters
valueValue to multiply with

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

static unsigned int objSize ( )
inlinestatic

Retrieve the object size

Returns
Obj size in bytes

Referenced by SliceVector< Obj >::size(), and SliceVector< Obj >::unHexify().

bool operator!= ( const SliceVector< Obj > &  other) const
inline

Inequality operator

Parameters
otherOriginal vector
Returns
True if the vectors are not equal, false otherwise

References SliceVector< Obj >::equals().

SliceVector& operator*= ( const SliceVector< Obj > &  other)
inline

Multiply this vector with another one

Parameters
otherVector to multiply with
Returns
A reference to this vector

References SliceVector< Obj >::length(), and SliceVector< Obj >::mul().

SliceVector& operator*= ( const Obj &  value)
inline

Multiply this vector with a value

Parameters
valueValue to multiply with
Returns
A reference to this vector

References SliceVector< Obj >::mul().

SliceVector& operator*= ( float  value)
inline

Multiply this vector with a value

Parameters
valueValue to multiply with
Returns
A reference to this vector

References SliceVector< Obj >::mul().

SliceVector& operator+= ( const SliceVector< Obj > &  other)
inline

Sum this vector with another one

Parameters
otherVector to sum with this one
Returns
A reference to this vector

References SliceVector< Obj >::length(), and SliceVector< Obj >::sum().

SliceVector& operator+= ( const Obj &  value)
inline

Add a value to each element of the vector

Parameters
valueValue to add
Returns
A reference to this vector

References SliceVector< Obj >::sum().

SliceVector& operator-= ( const SliceVector< Obj > &  other)
inline

Substract another vector from this one

Parameters
otherVector to substract
Returns
A reference to this vector

References SliceVector< Obj >::length(), and SliceVector< Obj >::sub().

SliceVector& operator-= ( const Obj &  value)
inline

Substract a value from each element of the vector

Parameters
valueValue to substract
Returns
A reference to this vector

References SliceVector< Obj >::sub().

SliceVector& operator= ( const SliceVector< Obj > &  other)
inline

Asignment operator. Builds a slice of another vector

Parameters
otherOriginal vector
Returns
A reference to this vector

References SliceVector< Obj >::setSlice().

bool operator== ( const SliceVector< Obj > &  other) const
inline

Equality operator

Parameters
otherOriginal vector
Returns
True if the vectors are equal, false otherwise

References SliceVector< Obj >::equals().

Obj& operator[] ( unsigned int  index)
inline

Indexing operator with unsigned int

Parameters
indexIndex of element to retrieve
Returns
The element at requested index
const Obj& operator[] ( unsigned int  index) const
inline

Indexing operator with unsigned int

Parameters
indexIndex of element to retrieve
Returns
The element at requested index
Obj& operator[] ( signed int  index)
inline

Indexing operator with signed int

Parameters
indexIndex of element to retrieve
Returns
The element at requested index
const Obj& operator[] ( signed int  index) const
inline

Indexing operator with signed int

Parameters
indexIndex of element to retrieve
Returns
The element at requested index
void resetStorage ( unsigned int  len,
unsigned int  maxLen = 0 
)
inline

Change the vector storage (re-allocate)

Parameters
lenNew vector length (0 to clear vector data)
maxLenOptional vector maximum length (it will be adjusted to be at least len)

References SliceVector< Obj >::maxLen().

bool resize ( unsigned int  len)
inline

Change the vector length without changing the contents. If the vector length is increased the new elements' value are not reset

Parameters
lenNew vector length
Returns
True on success, false if requested length is greater than max length

References SliceVector< Obj >::maxLen().

Referenced by SliceVector< Obj >::resizeMax().

void resizeMax ( )
inline

Change the vector length to maximum allowed without changing the contents

References SliceVector< Obj >::maxLen(), and SliceVector< Obj >::resize().

Referenced by SliceVector< Obj >::SliceVector().

bool setSlice ( const SliceVector< Obj > &  other,
unsigned int  offs = 0,
unsigned int  len = 0 
)
inline

Set a slice containing another vector

Parameters
otherOriginal vector
offsOffset in the original vector
lenThe number of elements (0 to use all available from offset)
Returns
True on success, false on failure

Referenced by SliceVector< Obj >::operator=().

unsigned int size ( ) const
inline
static unsigned int size ( unsigned int  len)
inlinestatic

Retrieve the length in bytes of a buffer containing 'count' objects

Parameters
lenBuffer length
Returns
Buffer length in bytes

References SliceVector< Obj >::objSize().

SliceVector slice ( unsigned int  offs,
unsigned int  len 
) const
inline

Retrieve a vector slice

Parameters
offsOffset in our vector
lenThe number of elements to retrieve
Returns
A vector containing the requested slice (empty if offset/length are invalid)

References SliceVector< Obj >::SliceVector().

Referenced by SliceVector< Obj >::head().

bool slice ( SliceVector< Obj > &  dest,
unsigned int  offs,
unsigned int  len = 0 
) const
inline

Set a slice of this vector to another one. The destination vector will be changed

Parameters
destDestination vector
offsOffset in our vector
lenThe number of elements (0 to use all available from offset)
Returns
True on success, false on failure (not enough data in our vector)
void steal ( SliceVector< Obj > &  other)
inline

Steal other vector's data

Parameters
otherOriginal vector
bool sub ( const SliceVector< Obj > &  other)
inline

Substract another vector from this one

Parameters
otherVector to substract
Returns
True on sucess, false on failure (vectors don't have the same length)

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

Referenced by SliceVector< Obj >::operator-=().

void sub ( const Obj &  value)
inline

Substract a value from each element of the vector

Parameters
valueValue to substract

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

Obj sum ( ) const
inline

Sum vector values

Returns
The sum of the vector elements

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

Referenced by SliceVector< Obj >::operator+=().

bool sum ( const SliceVector< Obj > &  other)
inline

Sum this vector with another one

Parameters
otherVector to sum with this one
Returns
True on sucess, false on failure (vectors don't have the same length)

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

void sum ( const Obj &  value)
inline

Add a value to each element of the vector

Parameters
valueValue to add

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

Obj sumApply ( Obj(*)(const Obj &)  func) const
inline

Apply a function to all vector elements and take the sum of the results

Parameters
funcFunction to apply
Returns
The result

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

float sumApplyF ( float(*)(const Obj &)  func) const
inline

Apply a function to all vector elements and take the sum of the results

Parameters
funcFunction to apply
Returns
The result

References SliceVector< Obj >::data(), and SliceVector< Obj >::length().

SliceVector tail ( unsigned int  len) const
inline

Retrieve vector tail (last elements)

Parameters
lenThe number of elements to retrieve
Returns
A vector containing the last elements of this vector

References SliceVector< Obj >::length(), and SliceVector< Obj >::SliceVector().

bool tail ( SliceVector< Obj > &  dest,
unsigned int  len 
) const
inline

Retrieve vector tail (last elements)

Parameters
lenThe number of elements to retrieve
destDestination vector
Returns
True on success, false on failure (not enough data in our vector)

References SliceVector< Obj >::length().

int unHexify ( const char *  str,
unsigned int  len,
int  sep = 255 
)
inline

Reset storage from a hexadecimal string representation. Clears the vector at start, i.e. the vector will be empty on failure. The vector may be empty on success also. 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
strInput character string
lenLength of input string
sepSeparator character used between octets. [-128..127]: expected separator (0: no separator is expected). Detect the separator if other value is given
Returns
0 on success, negative if unhexify fails, positive if the result is not a multiple of Obj size

References DataBlock::data(), DataBlock::length(), SliceVector< Obj >::objSize(), and DataBlock::unHexify().

Referenced by SliceVector< Obj >::unHexify().

int unHexify ( const String str,
int  sep = 255 
)
inline

Unhexify data

Parameters
strInput string
sepSeparator character used between octets
Returns
See unHexify(const char*,unsigned int,char)

References String::c_str(), String::length(), and SliceVector< Obj >::unHexify().

virtual unsigned int vectorSize ( ) const
inlinevirtual

Retrieve vector size in bytes

Returns
Vector size in bytes

Implements MathVectorBase.

References SliceVector< Obj >::size().


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