Panda3D
Public Member Functions
DatagramIterator Class Reference

A class to retrieve the individual data elements previously stored in a Datagram. More...

#include "datagramIterator.h"

List of all members.

Public Member Functions

 DatagramIterator (const Datagram &datagram, size_t offset=0)
 DatagramIterator (const DatagramIterator &copy)
void assign (Datagram &datagram, size_t offset=0)
 direct Assignment to a Datagram
string extract_bytes (size_t size)
 Extracts the indicated number of bytes in the datagram and returns them as a string.
PN_float32 get_be_float32 ()
 Extracts a 32-bit big-endian single-precision floating-point number.
PN_float64 get_be_float64 ()
 Extracts a 64-bit big-endian floating-point number.
PN_int16 get_be_int16 ()
 Extracts a signed 16-bit big-endian integer.
PN_int32 get_be_int32 ()
 Extracts a signed 32-bit big-endian integer.
PN_int64 get_be_int64 ()
 Extracts a signed 64-bit big-endian integer.
PN_uint16 get_be_uint16 ()
 Extracts an unsigned 16-bit big-endian integer.
PN_uint32 get_be_uint32 ()
 Extracts an unsigned 32-bit big-endian integer.
PN_uint64 get_be_uint64 ()
 Extracts an unsigned 64-bit big-endian integer.
bool get_bool ()
 Extracts a boolean value.
size_t get_current_index () const
 Returns the current position within the datagram of the next piece of data to extract.
const Datagramget_datagram () const
 Return the datagram of this iterator.
string get_fixed_string (size_t size)
 Extracts a fixed-length string.
PN_float32 get_float32 ()
 Extracts a 32-bit single-precision floating-point number.
PN_float64 get_float64 ()
 Extracts a 64-bit floating-point number.
PN_int16 get_int16 ()
 Extracts a signed 16-bit integer.
PN_int32 get_int32 ()
 Extracts a signed 32-bit integer.
PN_int64 get_int64 ()
 Extracts a signed 64-bit integer.
PN_int8 get_int8 ()
 Extracts a signed 8-bit integer.
string get_remaining_bytes () const
 Returns the remaining bytes in the datagram as a string, but does not extract them from the iterator.
int get_remaining_size () const
 Return the bytes left in the datagram.
PN_stdfloat get_stdfloat ()
 Extracts either a 32-bit or a 64-bit floating-point number, according to Datagram::set_stdfloat_double().
string get_string ()
 Extracts a variable-length string.
string get_string32 ()
 Extracts a variable-length string with a 32-bit length field.
PN_uint16 get_uint16 ()
 Extracts an unsigned 16-bit integer.
PN_uint32 get_uint32 ()
 Extracts an unsigned 32-bit integer.
PN_uint64 get_uint64 ()
 Extracts an unsigned 64-bit integer.
PN_uint8 get_uint8 ()
 Extracts an unsigned 8-bit integer.
wstring get_wstring ()
 Extracts a variable-length wstring (with a 32-bit length field).
string get_z_string ()
 Extracts a variable-length string, as a NULL-terminated string.
void operator= (const DatagramIterator &copy)
void output (ostream &out) const
 Write a string representation of this instance to <out>.
void skip_bytes (size_t size)
 Skips over the indicated number of bytes in the datagram.
void write (ostream &out, unsigned int indent=0) const
 Write a string representation of this instance to <out>.

Detailed Description

A class to retrieve the individual data elements previously stored in a Datagram.

Elements may be retrieved one at a time; it is up to the caller to know the correct type and order of each element.

Definition at line 30 of file datagramIterator.h.


Member Function Documentation

void DatagramIterator::assign ( Datagram datagram,
size_t  offset = 0 
) [inline]

direct Assignment to a Datagram

Definition at line 65 of file datagramIterator.I.

string DatagramIterator::extract_bytes ( size_t  size)

Extracts the indicated number of bytes in the datagram and returns them as a string.

Definition at line 139 of file datagramIterator.cxx.

References Datagram::get_data().

PN_float32 DatagramIterator::get_be_float32 ( ) [inline]

Extracts a 32-bit big-endian single-precision floating-point number.

Definition at line 447 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

Referenced by FltMaterial::extract_14_record(), FltVertex::extract_record(), and IffInputFile::get_be_float32().

PN_float64 DatagramIterator::get_be_float64 ( ) [inline]

Extracts a 64-bit big-endian floating-point number.

Definition at line 468 of file datagramIterator.I.

References Datagram::get_data(), Datagram::get_length(), and ReversedNumericData::store_value().

Referenced by FltVertex::extract_record().

PN_int16 DatagramIterator::get_be_int16 ( ) [inline]

Extracts a signed 16-bit big-endian integer.

Definition at line 320 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

Referenced by FltVertex::extract_record(), FltGeometry::extract_record(), and IffInputFile::get_be_int16().

PN_int32 DatagramIterator::get_be_int32 ( ) [inline]
PN_int64 DatagramIterator::get_be_int64 ( ) [inline]

Extracts a signed 64-bit big-endian integer.

Definition at line 362 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

PN_uint16 DatagramIterator::get_be_uint16 ( ) [inline]

Extracts an unsigned 16-bit big-endian integer.

Definition at line 383 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

Referenced by FltVertex::extract_record(), FltGeometry::extract_record(), and IffInputFile::get_be_uint16().

PN_uint32 DatagramIterator::get_be_uint32 ( ) [inline]

Extracts an unsigned 32-bit big-endian integer.

Definition at line 404 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

Referenced by FltMaterial::extract_14_record(), FltGeometry::extract_record(), and IffInputFile::get_be_uint32().

PN_uint64 DatagramIterator::get_be_uint64 ( ) [inline]

Extracts an unsigned 64-bit big-endian integer.

Definition at line 425 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

bool DatagramIterator::get_bool ( ) [inline]
size_t DatagramIterator::get_current_index ( ) const [inline]

Returns the current position within the datagram of the next piece of data to extract.

Definition at line 547 of file datagramIterator.I.

Referenced by RecorderFrame::fillin(), and GeomVertexArrayData::read_raw_data().

const Datagram & DatagramIterator::get_datagram ( ) const [inline]

Return the datagram of this iterator.

Definition at line 536 of file datagramIterator.I.

Referenced by RecorderFrame::fillin(), FltRecordReader::get_datagram(), GeomVertexArrayData::read_raw_data(), and write().

string DatagramIterator::get_fixed_string ( size_t  size)

Extracts a fixed-length string.

However, if a zero byte occurs within the string, it marks the end of the string.

Definition at line 95 of file datagramIterator.cxx.

References Datagram::get_data().

Referenced by FltMaterial::extract_14_record(), FltBeadID::extract_record(), and FltExternalReference::extract_record().

PN_float32 DatagramIterator::get_float32 ( ) [inline]

Extracts a 32-bit single-precision floating-point number.

Definition at line 261 of file datagramIterator.I.

References Datagram::get_data(), Datagram::get_length(), and NativeNumericData::store_value().

Referenced by get_stdfloat(), PStatCollectorDef::read_datagram(), and PStatFrameData::read_datagram().

PN_float64 DatagramIterator::get_float64 ( ) [inline]
PN_int16 DatagramIterator::get_int16 ( ) [inline]
PN_int32 DatagramIterator::get_int32 ( ) [inline]
PN_int64 DatagramIterator::get_int64 ( ) [inline]

Extracts a signed 64-bit integer.

Definition at line 176 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

PN_int8 DatagramIterator::get_int8 ( ) [inline]
string DatagramIterator::get_remaining_bytes ( ) const [inline]

Returns the remaining bytes in the datagram as a string, but does not extract them from the iterator.

Definition at line 511 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

Referenced by FltBeadID::extract_ancillary(), and FltRecord::extract_ancillary().

int DatagramIterator::get_remaining_size ( ) const [inline]
PN_stdfloat DatagramIterator::get_stdfloat ( ) [inline]

Extracts a variable-length string with a 32-bit length field.

Definition at line 47 of file datagramIterator.cxx.

References Datagram::get_data(), and get_uint32().

PN_uint16 DatagramIterator::get_uint16 ( ) [inline]

Extracts an unsigned 16-bit integer.

Definition at line 197 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

Referenced by CConnectionRepository::check_datagram(), PStatServerControlMessage::decode(), PStatClientControlMessage::decode(), TimedCycle::fillin(), AnimChannelBase::fillin(), AnimBundle::fillin(), RecorderTable::fillin(), DataNodeTransmit::fillin(), ButtonEventList::fillin(), AnimChannelScalarTable::fillin(), GeomVertexAnimationSpec::fillin(), PartBundleNode::fillin(), OccluderEffect::fillin(), ModelNode::fillin(), AnimGroup::fillin(), AntialiasAttrib::fillin(), AnimPreloadTable::fillin(), AnimChannelMatrixXfmTable::fillin(), GeomVertexColumn::fillin(), OccluderNode::fillin(), ScissorEffect::fillin(), CharacterJoint::fillin(), CollisionFloorMesh::fillin(), CollisionNode::fillin(), TransformTable::fillin(), CompassEffect::fillin(), BamCacheRecord::fillin(), TexProjectorEffect::fillin(), TexMatrixAttrib::fillin(), SliderTable::fillin(), TransformBlend::fillin(), PartGroup::fillin(), TransformBlendTable::fillin(), PortalNode::fillin(), ClipPlaneAttrib::fillin(), TexGenAttrib::fillin(), CollisionPolygon::fillin(), CollisionBox::fillin(), LightAttrib::fillin(), Character::fillin(), TextureAttrib::fillin(), GeomVertexArrayFormat::fillin(), RenderEffects::fillin(), GeomVertexFormat::fillin(), Lens::CData::fillin(), RenderState::fillin(), DatagramUDPHeader::get_datagram_checksum(), DatagramTCPHeader::get_datagram_size(), get_string(), get_wstring(), BamReader::init(), PStatFrameData::read_datagram(), ButtonEvent::read_datagram(), and BamReader::read_handle().

PN_uint32 DatagramIterator::get_uint32 ( ) [inline]
PN_uint64 DatagramIterator::get_uint64 ( ) [inline]

Extracts an unsigned 64-bit integer.

Definition at line 239 of file datagramIterator.I.

References Datagram::get_data(), and Datagram::get_length().

Referenced by CConnectionRepository::check_datagram(), and BamCacheRecord::fillin().

PN_uint8 DatagramIterator::get_uint8 ( ) [inline]

Extracts a variable-length wstring (with a 32-bit length field).

Definition at line 115 of file datagramIterator.cxx.

References Datagram::get_length(), get_uint16(), and get_uint32().

Extracts a variable-length string, as a NULL-terminated string.

Definition at line 69 of file datagramIterator.cxx.

References Datagram::get_data(), and Datagram::get_length().

void DatagramIterator::output ( ostream &  out) const

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

Definition at line 159 of file datagramIterator.cxx.

void DatagramIterator::skip_bytes ( size_t  size) [inline]
void DatagramIterator::write ( ostream &  out,
unsigned int  indent = 0 
) const

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

Definition at line 172 of file datagramIterator.cxx.

References get_datagram(), Datagram::get_length(), and Datagram::write().


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations