示例#1
0
        static void encode(util::OctetStream& output, value_type tag)
        {
            std::size_t const preamble = tag.preamble() & 0xE0;
            std::size_t const number = tag.number();

            if (number < 0x1F)
            {
                output.append(static_cast<util::OctetStream::value_type>(preamble | (number & 0x1F)));
            }
            else
            {
                output.append(static_cast<util::OctetStream::value_type>(preamble | 0x1F));
                detail::encodeMultibyte(output, number);
            }
        }
示例#2
0
 static std::size_t encodedLength(value_type tag)
 {
     return 1U + ((tag.number() < 0x1F) ? 0U : detail::getMultiByteEncodedLength(tag.number()));
 }