18 static const char* cpad =
"\0\0\0";
19 size_t len = s.size();
21 (*this) << (
static_cast<uint32_t
>(len));
22 _sb->sputn(s.c_str(), len);
26 _sb->sputn(cpad, 4 - pad);
34 for (
int i=0; i < 4; i++, v >>= 8) {
35 c[i] =
static_cast<unsigned char>(v & 0xff);
37 for (
int i=0; i < 4; i++) {
50 uint32_t n = *(
reinterpret_cast<const uint32_t*
>(&v));
62 uint64_t n = *(
reinterpret_cast<const uint64_t*
>(&v));
76 for (
int i=0; i < 8; i++, v >>= 8) {
77 c[i] =
static_cast<unsigned char>(v & 0xff);
79 for (
int i=0; i < 8; i++) {
106 return (*
this << _v.ui32);
123 return (*
this << _v.ui64);
133 _sb->sgetn(line, len);
134 s =
string(line, line + len);
137 size_t pad = (4 - len) & 3;
140 _sb->sgetn(dummy, pad);
146 for (
int i=0; i < 32; i += 8) {
147 uint32_t
c =
static_cast<uint32_t
>(
_sb->sbumpc());
166 v =
static_cast<int32_t
>(_v);
181 for (
int i=0; i < 64; i += 8) {
182 uint64_t
c =
static_cast<uint64_t
>(
_sb->sbumpc());
201 v =
static_cast<int64_t
>(_v);
217 float* vp =
reinterpret_cast<float*
>(&n);
225 double* vp =
reinterpret_cast<double*
>(&n);
C++ iostream like interface to read and write xdr streams.
istream & operator>>(int32_t &v)
ostream & operator<<(int32_t v)