| * BSD license, See the LICENSE file for more information. |
| #include "BinaryXMLEncoder.h" |
| ENCODING_LIMIT_1_BYTE = ((1 << ndn_BinaryXML_TT_VALUE_BITS) - 1), |
| ENCODING_LIMIT_2_BYTES = ((1 << (ndn_BinaryXML_TT_VALUE_BITS + ndn_BinaryXML_REGULAR_VALUE_BITS)) - 1), |
| ENCODING_LIMIT_3_BYTES = ((1 << (ndn_BinaryXML_TT_VALUE_BITS + 2 * ndn_BinaryXML_REGULAR_VALUE_BITS)) - 1) |
| * Return the number of bytes to encode a header of value x. |
| static unsigned int getNEncodingBytes(unsigned int x) |
| // Do a quick check for pre-compiled results. |
| if (x <= ENCODING_LIMIT_1_BYTE) |
| if (x <= ENCODING_LIMIT_2_BYTES) |
| if (x <= ENCODING_LIMIT_3_BYTES) |
| // Last byte gives you TT_VALUE_BITS. |
| // Remainder each gives you REGULAR_VALUE_BITS. |
| x >>= ndn_BinaryXML_TT_VALUE_BITS; |
| x >>= ndn_BinaryXML_REGULAR_VALUE_BITS; |