… | |
… | |
532 | enum { maxlen = 32 / 7 + 1}; |
532 | enum { maxlen = 32 / 7 + 1}; |
533 | uint8 buf[maxlen]; |
533 | uint8 buf[maxlen]; |
534 | uint8 *p = buf + maxlen; |
534 | uint8 *p = buf + maxlen; |
535 | uint32 val = v.val; |
535 | uint32 val = v.val; |
536 | |
536 | |
|
|
537 | *--p = val & 0x7F; |
|
|
538 | |
537 | while (val > 0x7F) |
539 | while (val > 0x7F) |
538 | { |
540 | { |
|
|
541 | val >>= 7; |
539 | *--p = (val & 0x7F) | 0x80; |
542 | *--p = (val & 0x7F) | 0x80; |
540 | val >>= 7; |
|
|
541 | } |
543 | } |
542 | |
|
|
543 | *--p = val; |
|
|
544 | |
544 | |
545 | return *this << data (p, buf + maxlen - p); |
545 | return *this << data (p, buf + maxlen - p); |
546 | } |
546 | } |
547 | |
547 | |
548 | packet &packet::operator <<(const data &v) |
548 | packet &packet::operator <<(const data &v) |