Panda3D
|
A class to retrieve the individual data elements previously stored in a Datagram. More...
#include "datagramIterator.h"
Public Member Functions | |
DatagramIterator (const Datagram &datagram, size_t offset=0) | |
void | assign (Datagram &datagram, size_t offset=0) |
direct Assignment to a Datagram More... | |
vector_uchar | extract_bytes (size_t size) |
Extracts the indicated number of bytes in the datagram and returns them as a string. More... | |
size_t | extract_bytes (unsigned char *into, size_t size) |
Extracts the indicated number of bytes in the datagram into the given character buffer. More... | |
PN_float32 | get_be_float32 () |
Extracts a 32-bit big-endian single-precision floating-point number. More... | |
PN_float64 | get_be_float64 () |
Extracts a 64-bit big-endian floating-point number. More... | |
int16_t | get_be_int16 () |
Extracts a signed 16-bit big-endian integer. More... | |
int32_t | get_be_int32 () |
Extracts a signed 32-bit big-endian integer. More... | |
int64_t | get_be_int64 () |
Extracts a signed 64-bit big-endian integer. More... | |
uint16_t | get_be_uint16 () |
Extracts an unsigned 16-bit big-endian integer. More... | |
uint32_t | get_be_uint32 () |
Extracts an unsigned 32-bit big-endian integer. More... | |
uint64_t | get_be_uint64 () |
Extracts an unsigned 64-bit big-endian integer. More... | |
vector_uchar | get_blob () |
Extracts a variable-length binary blob. More... | |
vector_uchar | get_blob32 () |
Extracts a variable-length binary blob with a 32-bit size field. More... | |
bool | get_bool () |
Extracts a boolean value. More... | |
size_t | get_current_index () const |
Returns the current position within the datagram of the next piece of data to extract. More... | |
const Datagram & | get_datagram () const |
Return the datagram of this iterator. More... | |
std::string | get_fixed_string (size_t size) |
Extracts a fixed-length string. More... | |
PN_float32 | get_float32 () |
Extracts a 32-bit single-precision floating-point number. More... | |
PN_float64 | get_float64 () |
Extracts a 64-bit floating-point number. More... | |
int16_t | get_int16 () |
Extracts a signed 16-bit integer. More... | |
int32_t | get_int32 () |
Extracts a signed 32-bit integer. More... | |
int64_t | get_int64 () |
Extracts a signed 64-bit integer. More... | |
int8_t | get_int8 () |
Extracts a signed 8-bit integer. More... | |
vector_uchar | get_remaining_bytes () const |
Returns the remaining bytes in the datagram as a string, but does not extract them from the iterator. More... | |
size_t | get_remaining_size () const |
Return the bytes left in the datagram. More... | |
PN_stdfloat | get_stdfloat () |
Extracts either a 32-bit or a 64-bit floating-point number, according to Datagram::set_stdfloat_double(). More... | |
std::string | get_string () |
Extracts a variable-length string. More... | |
std::string | get_string32 () |
Extracts a variable-length string with a 32-bit length field. More... | |
uint16_t | get_uint16 () |
Extracts an unsigned 16-bit integer. More... | |
uint32_t | get_uint32 () |
Extracts an unsigned 32-bit integer. More... | |
uint64_t | get_uint64 () |
Extracts an unsigned 64-bit integer. More... | |
uint8_t | get_uint8 () |
Extracts an unsigned 8-bit integer. More... | |
std::wstring | get_wstring () |
Extracts a variable-length wstring (with a 32-bit length field). More... | |
std::string | get_z_string () |
Extracts a variable-length string, as a NULL-terminated string. More... | |
void | output (std::ostream &out) const |
Write a string representation of this instance to <out>. More... | |
void | skip_bytes (size_t size) |
Skips over the indicated number of bytes in the datagram. More... | |
void | write (std::ostream &out, unsigned int indent=0) const |
Write a string representation of this instance to <out>. More... | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
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 27 of file datagramIterator.h.
|
inline |
direct Assignment to a Datagram
Definition at line 36 of file datagramIterator.I.
vector_uchar DatagramIterator::extract_bytes | ( | size_t | size | ) |
Extracts the indicated number of bytes in the datagram and returns them as a string.
Definition at line 125 of file datagramIterator.cxx.
size_t DatagramIterator::extract_bytes | ( | unsigned char * | into, |
size_t | size | ||
) |
Extracts the indicated number of bytes in the datagram into the given character buffer.
Assumes that the buffer is big enough to hold the requested number of bytes. Returns the number of bytes that were successfully written.
Definition at line 145 of file datagramIterator.cxx.
|
inline |
Extracts a 32-bit big-endian single-precision floating-point number.
Definition at line 368 of file datagramIterator.I.
Referenced by FltMaterial::extract_14_record(), and IffInputFile::get_be_float32().
|
inline |
Extracts a 64-bit big-endian floating-point number.
Definition at line 387 of file datagramIterator.I.
|
inline |
Extracts a signed 16-bit big-endian integer.
Definition at line 254 of file datagramIterator.I.
Referenced by IffInputFile::get_be_int16().
|
inline |
Extracts a signed 32-bit big-endian integer.
Definition at line 273 of file datagramIterator.I.
Referenced by IffInputFile::get_be_int32().
|
inline |
Extracts a signed 64-bit big-endian integer.
Definition at line 292 of file datagramIterator.I.
|
inline |
Extracts an unsigned 16-bit big-endian integer.
Definition at line 311 of file datagramIterator.I.
Referenced by IffInputFile::get_be_uint16().
|
inline |
Extracts an unsigned 32-bit big-endian integer.
Definition at line 330 of file datagramIterator.I.
Referenced by FltMaterial::extract_14_record(), and IffInputFile::get_be_uint32().
|
inline |
Extracts an unsigned 64-bit big-endian integer.
Definition at line 349 of file datagramIterator.I.
|
inline |
Extracts a variable-length binary blob.
Definition at line 406 of file datagramIterator.I.
|
inline |
Extracts a variable-length binary blob with a 32-bit size field.
Definition at line 414 of file datagramIterator.I.
|
inline |
Extracts a boolean value.
Definition at line 47 of file datagramIterator.I.
Referenced by GeomVertexAnimationSpec::fillin(), TextureProperties::fillin(), TextureStage::make_TextureStage(), CollisionHandlerGravity::read_datagram(), and CollisionHandlerPusher::read_datagram().
|
inline |
Returns the current position within the datagram of the next piece of data to extract.
Definition at line 470 of file datagramIterator.I.
|
inline |
Return the datagram of this iterator.
Definition at line 461 of file datagramIterator.I.
Referenced by 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 86 of file datagramIterator.cxx.
Referenced by FltMaterial::extract_14_record().
|
inline |
Extracts a 32-bit single-precision floating-point number.
Definition at line 201 of file datagramIterator.I.
Referenced by PStatCollectorDef::read_datagram().
|
inline |
Extracts a 64-bit floating-point number.
Definition at line 220 of file datagramIterator.I.
Referenced by TexturePosition::fillin(), CollisionHandlerFloor::read_datagram(), CollisionHandlerGravity::read_datagram(), and FFTCompressor::read_header().
|
inline |
Extracts a signed 16-bit integer.
Definition at line 87 of file datagramIterator.I.
Referenced by SamplerState::read_datagram(), and PStatCollectorDef::read_datagram().
|
inline |
Extracts a signed 32-bit integer.
Definition at line 106 of file datagramIterator.I.
Referenced by PaletteGroups::fillin(), TexturePosition::fillin(), TextureProperties::fillin(), DownloadDb::Db::parse_header(), DownloadDb::Db::parse_record_header(), and FFTCompressor::read_reals().
|
inline |
Extracts a signed 64-bit integer.
Definition at line 125 of file datagramIterator.I.
|
inline |
Extracts a signed 8-bit integer.
Definition at line 55 of file datagramIterator.I.
Referenced by HermiteCurveCV::fillin(), IffInputFile::get_int8(), IffInputFile::get_uint8(), and FFTCompressor::read_header().
|
inline |
Returns the remaining bytes in the datagram as a string, but does not extract them from the iterator.
Definition at line 441 of file datagramIterator.I.
|
inline |
Return the bytes left in the datagram.
Definition at line 453 of file datagramIterator.I.
Referenced by FltRecord::check_remaining_size(), and PStatClientControlMessage::decode().
|
inline |
Extracts either a 32-bit or a 64-bit floating-point number, according to Datagram::set_stdfloat_double().
Definition at line 241 of file datagramIterator.I.
Referenced by TimedCycle::fillin(), AnimChannelScalarDynamic::fillin(), STTransform::fillin(), and SamplerState::read_datagram().
string DatagramIterator::get_string | ( | ) |
Extracts a variable-length string.
Definition at line 25 of file datagramIterator.cxx.
References get_uint16().
Referenced by PStatServerControlMessage::decode(), PStatClientControlMessage::decode(), HermiteCurveCV::fillin(), SpeedTreeNode::InstanceList::fillin(), ButtonEvent::read_datagram(), PStatCollectorDef::read_datagram(), and BamReader::read_handle().
string DatagramIterator::get_string32 | ( | ) |
Extracts a variable-length string with a 32-bit length field.
Definition at line 44 of file datagramIterator.cxx.
References get_uint32().
|
inline |
Extracts an unsigned 16-bit integer.
Definition at line 144 of file datagramIterator.I.
Referenced by PStatServerControlMessage::decode(), PStatClientControlMessage::decode(), TimedCycle::fillin(), ButtonEventList::fillin(), GeomVertexAnimationSpec::fillin(), GeomVertexColumn::fillin(), TransformBlend::fillin(), ComputeNode::Dispatcher::CData::fillin(), get_string(), ButtonEvent::read_datagram(), and BamReader::read_handle().
|
inline |
Extracts an unsigned 32-bit integer.
Definition at line 163 of file datagramIterator.I.
Referenced by get_string32(), get_wstring(), DownloadDb::Db::parse_header(), BitArray::read_datagram(), SparseArray::read_datagram(), and CollisionHandlerEvent::read_datagram().
|
inline |
Extracts an unsigned 64-bit integer.
Definition at line 182 of file datagramIterator.I.
|
inline |
Extracts an unsigned 8-bit integer.
Definition at line 71 of file datagramIterator.I.
Referenced by PStatServerControlMessage::decode(), PStatClientControlMessage::decode(), GeomVertexAnimationSpec::fillin(), GeomVertexColumn::fillin(), ButtonEvent::read_datagram(), SamplerState::read_datagram(), and BamReader::read_handle().
wstring DatagramIterator::get_wstring | ( | ) |
Extracts a variable-length wstring (with a 32-bit length field).
Definition at line 103 of file datagramIterator.cxx.
References get_uint32().
string DatagramIterator::get_z_string | ( | ) |
Extracts a variable-length string, as a NULL-terminated string.
Definition at line 63 of file datagramIterator.cxx.
void DatagramIterator::output | ( | std::ostream & | out | ) | const |
Write a string representation of this instance to <out>.
Definition at line 161 of file datagramIterator.cxx.
|
inline |
Skips over the indicated number of bytes in the datagram.
Definition at line 422 of file datagramIterator.I.
Referenced by FltMaterial::extract_14_record().
void DatagramIterator::write | ( | std::ostream & | out, |
unsigned int | indent = 0 |
||
) | const |
Write a string representation of this instance to <out>.
Definition at line 171 of file datagramIterator.cxx.
References get_datagram(), Datagram::get_length(), indent(), and Datagram::write().