Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions

# Datagram Class Reference

An ordered list of data elements, formatted in memory for transmission over a socket or writing to a data file. More...

Inheritance diagram for Datagram:

List of all members.

## 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 ()

## Detailed Description

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.

## Constructor & Destructor Documentation

Datagram | ( |  | ) |

Constructs an empty datagram.

Datagram | ( | Datagram const | copy | ) |

Datagram | ( | string | data | ) |

Constructs a datagram from an existing block of data.

## Member Function Documentation

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.

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.

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.

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.

Unlike set_array(), a complete copy is made of the data; subsequent changes to the Datagram will *not* change the source CPTA_uchar.

dumpHex | ( | ostream | out | ) |

Writes a representation of the entire datagram contents, as a sequence of hex (and ASCII) values.

dumpHex | ( | ostream | out,
|  | unsigned int | indent
| ) |  |

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.

static TypeHandle getClassType | ( |  | ) | `[static]`

Reimplemented from TypedObject.

Reimplemented in NetDatagram.

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.

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 | ) |

Datagram operator= | ( | Datagram const | copy | ) |

Reimplemented in NetDatagram.

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.

This is assignment by reference: subsequent changes to the Datagram will also change the source PTA_uchar.

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.

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

All Classes Namespaces Functions Variables Enumerations Enumerator Properties