Panda3D
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:
TypedObject MemoryBase NetDatagram

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 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 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 int value)
 Adds a signed 64-bit integer to the datagram.
 addInt8 (signed char value)
 Adds a signed 8-bit integer to the datagram.
 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 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.
TypeHandle getType ()
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly.
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type.
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.
 write (ostream out)
 Write a string representation of this instance to <out>.
 write (ostream out, unsigned int indent)
 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.

Since this kind of float is not necessarily portable across different architectures, special care is required.

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

Adds a signed 64-bit integer to the datagram.

addInt8 ( signed char  value)

Adds a signed 8-bit integer to the datagram.

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

TypeHandle getType ( ) [inherited]

Reimplemented in AnimChannelBase.

int getTypeIndex ( ) [inherited]

Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.

This is equivalent to get_type().get_index().

bool isExactType ( TypeHandle  handle) [inherited]

Returns true if the current object is the indicated type exactly.

bool isOfType ( TypeHandle  handle) [inherited]

Returns true if the current object is or derives from the indicated type.

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.

write ( ostream  out)

Write a string representation of this instance to <out>.

write ( ostream  out,
unsigned int  indent 
)

Write a string representation of this instance to <out>.

 All Classes Namespaces Functions Variables Enumerations Enumerator Properties