… | |
… | |
260 | data16 (const shstr &sh) : len (sh.length ()), ptr ((void *)&sh) { } |
260 | data16 (const shstr &sh) : len (sh.length ()), ptr ((void *)&sh) { } |
261 | }; |
261 | }; |
262 | |
262 | |
263 | struct ber32 |
263 | struct ber32 |
264 | { |
264 | { |
|
|
265 | enum { size = 5 }; // maximum length of an encoded ber32 |
265 | uint32 val; |
266 | uint32 val; |
266 | |
267 | |
267 | ber32 (uint32 val) : val (val) { } |
268 | ber32 (uint32 val) : val (val) { } |
268 | }; |
269 | }; |
269 | |
270 | |
… | |
… | |
314 | packet &operator <<(const data8 &v); |
315 | packet &operator <<(const data8 &v); |
315 | packet &operator <<(const data16 &v); |
316 | packet &operator <<(const data16 &v); |
316 | |
317 | |
317 | packet &operator <<(const char *v); |
318 | packet &operator <<(const char *v); |
318 | packet &operator <<(const shstr &sh) { return *this << data (&sh, sh.length ()); } |
319 | packet &operator <<(const shstr &sh) { return *this << data (&sh, sh.length ()); } |
|
|
320 | packet &operator <<(const std::string &s) { return *this << data (s.data (), s.size ()); } |
319 | |
321 | |
320 | void vprintf (const char *format, va_list ap); |
322 | void vprintf (const char *format, va_list ap); |
321 | |
323 | |
322 | void printf (const char *format, ...) |
324 | void printf (const char *format, ...) |
323 | { |
325 | { |