An ordered list of data elements, formatted in memory for transmission over a socket or writing to a data file. More...
Public Member Functions | |
Datagram () | |
Constructs an empty datagram. | |
Datagram (Datagram const copy) | |
Datagram (string data) | |
Constructs a datagram from an existing block of data. | |
addBeFloat32 (float value) | |
Adds a 32-bit single-precision big-endian floating-point number to the datagram. | |
addBeFloat64 (double value) | |
Adds a 64-bit big-endian floating-point number to the datagram. | |
addBeInt16 (short int value) | |
Adds a signed 16-bit big-endian integer to the datagram. | |
addBeInt32 (int value) | |
Adds a signed 32-bit big-endian integer to the datagram. | |
addBeInt64 (long long int value) | |
Adds a signed 64-bit big-endian integer to the datagram. | |
addBeUint16 (unsigned short int value) | |
Adds an unsigned 16-bit big-endian integer to the datagram. | |
addBeUint32 (unsigned int value) | |
Adds an unsigned 32-bit big-endian integer to the datagram. | |
addBeUint64 (unsigned long long int value) | |
Adds an unsigned 64-bit big-endian integer to the datagram. | |
addBool (bool value) | |
Adds a boolean value to the datagram. | |
addFixedString (string str, unsigned int size) | |
Adds a fixed-length string to the datagram. | |
addFloat32 (float value) | |
Adds a 32-bit single-precision floating-point number to the datagram. | |
addFloat64 (double value) | |
Adds a 64-bit floating-point number to the datagram. | |
addInt16 (short int value) | |
Adds a signed 16-bit integer to the datagram. | |
addInt32 (int value) | |
Adds a signed 32-bit integer to the datagram. | |
addInt64 (long long int value) | |
Adds a signed 64-bit integer to the datagram. | |
addInt8 (signed char value) | |
Adds a signed 8-bit integer to the datagram. | |
addStdfloat (float value) | |
Adds either a 32-bit or a 64-bit floating-point number, according to set_stdfloat_double(). | |
addString (string str) | |
Adds a variable-length string to the datagram. | |
addString32 (string str) | |
Adds a variable-length string to the datagram, using a 32-bit length field to allow very long strings. | |
addUint16 (unsigned short int value) | |
Adds an unsigned 16-bit integer to the datagram. | |
addUint32 (unsigned int value) | |
Adds an unsigned 32-bit integer to the datagram. | |
addUint64 (unsigned long long int value) | |
Adds an unsigned 64-bit integer to the datagram. | |
addUint8 (unsigned char value) | |
Adds an unsigned 8-bit integer to the datagram. | |
addWstring (string str) | |
Adds a variable-length wstring to the datagram. | |
addZString (string str) | |
Adds a variable-length string to the datagram, as a NULL-terminated string. | |
appendData (string data) | |
Appends some more raw data to the end of the datagram. | |
clear () | |
Resets the datagram to empty, in preparation for building up a new datagram. | |
copyArray (ConstPointerToArrayunsigned char data) | |
Replaces the data in the Datagram with a copy of the data in the indicated CPTA_uchar. | |
dumpHex (ostream out, unsigned int indent) | |
Writes a representation of the entire datagram contents, as a sequence of hex (and ASCII) values. | |
dumpHex (ostream out) | |
Writes a representation of the entire datagram contents, as a sequence of hex (and ASCII) values. | |
ConstPointerToArrayunsigned char | getArray () |
Returns a const pointer to the actual data in the Datagram. | |
getData () | |
Returns a pointer to the beginning of the datagram's data. | |
unsigned int | getLength () |
Returns the number of bytes in the datagram. | |
string | getMessage () |
Returns the datagram's data as a string. | |
bool | getStdfloatDouble () |
Returns the stdfloat_double flag. | |
PointerToArrayunsigned char | modifyArray () |
Returns a modifiable pointer to the actual data in the Datagram. | |
bool | operator!= (Datagram const other) |
bool | operator< (Datagram const other) |
Datagram | operator= (Datagram const copy) |
bool | operator== (Datagram const other) |
output (ostream out) | |
Write a string representation of this instance to <out>. | |
padBytes (unsigned int size) | |
Adds the indicated number of zero bytes to the datagram. | |
setArray (PointerToArrayunsigned char data) | |
Replaces the data in the Datagram with the data in the indicated PTA_uchar. | |
setStdfloatDouble (bool stdfloat_double) | |
Changes the stdfloat_double flag, which defines the operation performed by add_stdfloat() and DatagramIterator::get_stdfloat(). | |
write (ostream out, unsigned int indent) | |
Write a string representation of this instance to <out>. | |
write (ostream out) | |
Write a string representation of this instance to <out>. | |
Static Public Member Functions | |
static TypeHandle | getClassType () |
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a data file.
Data elements should be added one at a time, in order, to the Datagram. The nature and contents of the data elements are totally up to the user. When a Datagram has been transmitted and received, its data elements may be extracted using a DatagramIterator; it is up to the caller to know the correct type of each data element in order.
A Datagram is itself headerless; it is simply a collection of data elements.
Datagram | ( | ) |
Constructs an empty datagram.
Datagram | ( | string | data | ) |
Constructs a datagram from an existing block of data.
addBeFloat32 | ( | float | value | ) |
Adds a 32-bit single-precision big-endian floating-point number to the datagram.
addBeFloat64 | ( | double | value | ) |
Adds a 64-bit big-endian floating-point number to the datagram.
addBeInt16 | ( | short int | value | ) |
Adds a signed 16-bit big-endian integer to the datagram.
addBeInt32 | ( | int | value | ) |
Adds a signed 32-bit big-endian integer to the datagram.
addBeInt64 | ( | long long int | value | ) |
Adds a signed 64-bit big-endian integer to the datagram.
addBeUint16 | ( | unsigned short int | value | ) |
Adds an unsigned 16-bit big-endian integer to the datagram.
addBeUint32 | ( | unsigned int | value | ) |
Adds an unsigned 32-bit big-endian integer to the datagram.
addBeUint64 | ( | unsigned long long int | value | ) |
Adds an unsigned 64-bit big-endian integer to the datagram.
addBool | ( | bool | value | ) |
Adds a boolean value to the datagram.
addFixedString | ( | string | str, |
unsigned int | size | ||
) |
Adds a fixed-length string to the datagram.
If the string given is less than the requested size, this will pad the string out with zeroes; if it is greater than the requested size, this will silently truncate the string.
addFloat32 | ( | float | value | ) |
Adds a 32-bit single-precision floating-point number to the datagram.
Since this kind of float is not necessarily portable across different architectures, special care is required.
addFloat64 | ( | double | value | ) |
Adds a 64-bit floating-point number to the datagram.
addStdfloat | ( | float | value | ) |
Adds either a 32-bit or a 64-bit floating-point number, according to set_stdfloat_double().
addString | ( | string | str | ) |
Adds a variable-length string to the datagram.
This actually adds a count followed by n bytes.
addString32 | ( | string | str | ) |
Adds a variable-length string to the datagram, using a 32-bit length field to allow very long strings.
addWstring | ( | string | str | ) |
Adds a variable-length wstring to the datagram.
addZString | ( | string | str | ) |
Adds a variable-length string to the datagram, as a NULL-terminated string.
appendData | ( | string | data | ) |
Appends some more raw data to the end of the datagram.
clear | ( | ) |
Resets the datagram to empty, in preparation for building up a new datagram.
Replaces the data in the Datagram with a copy of the data in the indicated CPTA_uchar.
Unlike set_array(), a complete copy is made of the data; subsequent changes to the Datagram will *not* change the source CPTA_uchar.
Writes a representation of the entire datagram contents, as a sequence of hex (and ASCII) values.
Writes a representation of the entire datagram contents, as a sequence of hex (and ASCII) values.
Returns a const pointer to the actual data in the Datagram.
static TypeHandle getClassType | ( | ) | [static] |
Reimplemented from TypedObject.
Reimplemented in NetDatagram.
getData | ( | ) |
Returns a pointer to the beginning of the datagram's data.
string getMessage | ( | ) |
Returns the datagram's data as a string.
bool getStdfloatDouble | ( | ) |
Returns the stdfloat_double flag.
See set_stdfloat_double().
PointerToArrayunsigned char modifyArray | ( | ) |
Returns a modifiable pointer to the actual data in the Datagram.
bool operator!= | ( | Datagram const | other | ) |
bool operator< | ( | Datagram const | other | ) |
Reimplemented in NetDatagram.
bool operator== | ( | Datagram const | other | ) |
setStdfloatDouble | ( | bool | stdfloat_double | ) |
Changes the stdfloat_double flag, which defines the operation performed by add_stdfloat() and DatagramIterator::get_stdfloat().
When this is true, add_stdfloat() adds a 64-bit floating-point number; when it is false, it adds a 32-bit floating-point number. The default is based on the STDFLOAT_DOUBLE compilation flag.