… | |
… | |
199 | unsigned int len; |
199 | unsigned int len; |
200 | const void *ptr; |
200 | const void *ptr; |
201 | |
201 | |
202 | data (const void *ptr, int len) : len (len), ptr (ptr) { } |
202 | data (const void *ptr, int len) : len (len), ptr (ptr) { } |
203 | data (const char *str) : len (strlen (str ? str : 0)), ptr ((void *)str) { } |
203 | data (const char *str) : len (strlen (str ? str : 0)), ptr ((void *)str) { } |
204 | data (const shstr &sh) : len (sh.length ()), ptr ((void *)&sh) { } |
204 | data (shstr_tmp sh) : len (sh.length ()), ptr ((void *)&sh) { } |
205 | data (dynbuf &buf) : len (buf.size ()), ptr (buf.linearise ()) { } |
205 | data (dynbuf &buf) : len (buf.size ()), ptr (buf.linearise ()) { } |
206 | }; |
206 | }; |
207 | |
207 | |
208 | struct data8 |
208 | struct data8 |
209 | { |
209 | { |
210 | unsigned int len; |
210 | unsigned int len; |
211 | const void *ptr; |
211 | const void *ptr; |
212 | |
212 | |
213 | data8 (const void *ptr, int len) : len (len), ptr (ptr) { } |
213 | data8 (const void *ptr, int len) : len (len), ptr (ptr) { } |
214 | data8 (const char *str) : len (strlen (str ? str : 0)), ptr ((void *)str) { } |
214 | data8 (const char *str) : len (strlen (str ? str : 0)), ptr ((void *)str) { } |
215 | data8 (const shstr &sh) : len (sh.length ()), ptr ((void *)&sh) { } |
215 | data8 (shstr_tmp sh) : len (sh.length ()), ptr ((void *)&sh) { } |
216 | data8 (dynbuf &buf) : len (buf.size ()), ptr (buf.linearise ()) { } |
216 | data8 (dynbuf &buf) : len (buf.size ()), ptr (buf.linearise ()) { } |
217 | }; |
217 | }; |
218 | |
218 | |
219 | struct data16 |
219 | struct data16 |
220 | { |
220 | { |
221 | unsigned int len; |
221 | unsigned int len; |
222 | const void *ptr; |
222 | const void *ptr; |
223 | |
223 | |
224 | data16 (const void *ptr, int len) : len (len), ptr (ptr) { } |
224 | data16 (const void *ptr, int len) : len (len), ptr (ptr) { } |
225 | data16 (const char *str) : len (strlen (str ? str : 0)), ptr ((void *)str) { } |
225 | data16 (const char *str) : len (strlen (str ? str : 0)), ptr ((void *)str) { } |
226 | data16 (const shstr &sh) : len (sh.length ()), ptr ((void *)&sh) { } |
226 | data16 (shstr_tmp sh) : len (sh.length ()), ptr ((void *)&sh) { } |
227 | data16 (dynbuf &buf) : len (buf.size ()), ptr (buf.linearise ()) { } |
227 | data16 (dynbuf &buf) : len (buf.size ()), ptr (buf.linearise ()) { } |
228 | }; |
228 | }; |
229 | |
229 | |
230 | struct ber32 |
230 | struct ber32 |
231 | { |
231 | { |
… | |
… | |
290 | packet &operator <<(const data &v); |
290 | packet &operator <<(const data &v); |
291 | packet &operator <<(const data8 &v); |
291 | packet &operator <<(const data8 &v); |
292 | packet &operator <<(const data16 &v); |
292 | packet &operator <<(const data16 &v); |
293 | |
293 | |
294 | packet &operator <<(const char *v); |
294 | packet &operator <<(const char *v); |
295 | packet &operator <<(const shstr &sh) { return *this << data (&sh, sh.length ()); } |
295 | packet &operator <<(shstr_tmp sh) { return *this << data (sh); } |
296 | packet &operator <<(const std::string &s) { return *this << data (s.data (), s.size ()); } |
296 | packet &operator <<(const std::string &s) { return *this << data (s.data (), s.size ()); } |
297 | |
297 | |
298 | void vprintf (const char *format, va_list ap); |
298 | void vprintf (const char *format, va_list ap); |
299 | |
299 | |
300 | void printf (const char *format, ...) |
300 | void printf (const char *format, ...) |