* Compact Size * size < 253 -- 1 byte * size <= USHRT_MAX -- 3 bytes (253 + 2 bytes) * size <= UINT_MAX -- 5 bytes (254 + 4 bytes) * size > UINT_MAX -- 9 bytes (255 + 8 bytes) */
| 231 | * size > UINT_MAX -- 9 bytes (255 + 8 bytes) |
| 232 | */ |
| 233 | inline unsigned int GetSizeOfCompactSize(uint64_t nSize) |
| 234 | { |
| 235 | if (nSize < 253) return sizeof(unsigned char); |
| 236 | else if (nSize <= std::numeric_limits<uint16_t>::max()) return sizeof(unsigned char) + sizeof(uint16_t); |
| 237 | else if (nSize <= std::numeric_limits<unsigned int>::max()) return sizeof(unsigned char) + sizeof(unsigned int); |
| 238 | else return sizeof(unsigned char) + sizeof(uint64_t); |
| 239 | } |
| 240 | |
| 241 | inline void WriteCompactSize(CSizeComputer& os, uint64_t nSize); |
| 242 |
no outgoing calls