18 #include "pandabase.h" 20 #include "numeric_types.h" 21 #include "typedObject.h" 22 #include "littleEndian.h" 23 #include "bigEndian.h" 24 #include "pta_uchar.h" 46 INLINE Datagram(
const void *data,
size_t size);
47 INLINE Datagram(
const string &data);
48 INLINE Datagram(
const Datagram ©);
49 INLINE
void operator = (
const Datagram ©);
51 #ifdef USE_MOVE_SEMANTICS 52 INLINE Datagram(Datagram &&from) NOEXCEPT;
53 INLINE
void operator = (Datagram &&from) NOEXCEPT;
59 void dump_hex(ostream &out,
unsigned int indent=0)
const;
61 INLINE
void add_bool(
bool value);
62 INLINE
void add_int8(PN_int8 value);
63 INLINE
void add_uint8(PN_uint8 value);
66 INLINE
void add_int16(PN_int16 value);
67 INLINE
void add_int32(PN_int32 value);
68 INLINE
void add_int64(PN_int64 value);
69 INLINE
void add_uint16(PN_uint16 value);
70 INLINE
void add_uint32(PN_uint32 value);
71 INLINE
void add_uint64(PN_uint64 value);
72 INLINE
void add_float32(PN_float32 value);
73 INLINE
void add_float64(PN_float64 value);
74 INLINE
void add_stdfloat(PN_stdfloat value);
77 INLINE
void add_be_int16(PN_int16 value);
78 INLINE
void add_be_int32(PN_int32 value);
79 INLINE
void add_be_int64(PN_int64 value);
80 INLINE
void add_be_uint16(PN_uint16 value);
81 INLINE
void add_be_uint32(PN_uint32 value);
82 INLINE
void add_be_uint64(PN_uint64 value);
83 INLINE
void add_be_float32(PN_float32 value);
84 INLINE
void add_be_float64(PN_float64 value);
86 INLINE
void add_string(
const string &str);
87 INLINE
void add_string32(
const string &str);
88 INLINE
void add_z_string(
string str);
89 INLINE
void add_fixed_string(
const string &str,
size_t size);
90 void add_wstring(
const wstring &str);
92 void pad_bytes(
size_t size);
93 void append_data(
const void *data,
size_t size);
94 INLINE
void append_data(
const string &data);
96 void assign(
const void *data,
size_t size);
98 INLINE
string get_message()
const;
99 INLINE
const void *get_data()
const;
100 INLINE
size_t get_length()
const;
102 INLINE
void set_array(PTA_uchar data);
105 INLINE PTA_uchar modify_array();
107 INLINE
void set_stdfloat_double(
bool stdfloat_double);
108 INLINE
bool get_stdfloat_double()
const;
110 INLINE
bool operator == (
const Datagram &other)
const;
111 INLINE
bool operator != (
const Datagram &other)
const;
112 INLINE
bool operator < (
const Datagram &other)
const;
114 void output(ostream &out)
const;
115 void write(ostream &out,
unsigned int indent=0)
const;
119 bool _stdfloat_double;
128 register_type(_type_handle,
"Datagram",
129 TypedObject::get_class_type());
132 return get_class_type();
147 generic_write_datagram(
Datagram &dest,
bool value);
149 generic_write_datagram(
Datagram &dest,
int value);
151 generic_write_datagram(
Datagram &dest,
float value);
153 generic_write_datagram(
Datagram &dest,
double value);
155 generic_write_datagram(
Datagram &dest,
const string &value);
157 generic_write_datagram(
Datagram &dest,
const wstring &value);
160 #include "datagram.I" static void init_type()
This function is declared non-inline to work around a compiler bug in g++ 2.96.
This is an abstract class that all classes which use TypeHandle, and also provide virtual functions t...
TypeHandle is the identifier used to differentiate C++ class types.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...