Zserio C++ runtime library  1.3.0
Built for Zserio 2.18.0
BitSizeOfCalculator.h
Go to the documentation of this file.
1 #ifndef ZSERIO_BITSIZEOF_CALCULATOR_H_INC
2 #define ZSERIO_BITSIZEOF_CALCULATOR_H_INC
3 
4 #include <string>
5 
6 #include "zserio/BitBuffer.h"
9 #include "zserio/Span.h"
10 #include "zserio/StringView.h"
11 #include "zserio/Types.h"
12 
13 namespace zserio
14 {
15 
23 size_t bitSizeOfVarInt16(int16_t value);
24 
32 size_t bitSizeOfVarInt32(int32_t value);
33 
41 size_t bitSizeOfVarInt64(int64_t value);
42 
50 size_t bitSizeOfVarUInt16(uint16_t value);
51 
59 size_t bitSizeOfVarUInt32(uint32_t value);
60 
68 size_t bitSizeOfVarUInt64(uint64_t value);
69 
77 size_t bitSizeOfVarInt(int64_t value);
78 
86 size_t bitSizeOfVarUInt(uint64_t value);
87 
95 size_t bitSizeOfVarSize(uint32_t value);
96 
104 size_t bitSizeOfBytes(Span<const uint8_t> bytesValue);
105 
113 size_t bitSizeOfString(StringView stringValue);
114 
122 template <typename ALLOC>
124 {
125  const size_t bitBufferSize = bitBuffer.getBitSize();
126 
127  // bit buffer consists of varsize for bit size followed by the bits
128  return bitSizeOfVarSize(convertSizeToUInt32(bitBufferSize)) + bitBufferSize;
129 }
130 
131 } // namespace zserio
132 
133 #endif // ifndef ZSERIO_BITSIZEOF_CALCULATOR_H_INC
size_t getBitSize() const
Definition: BitBuffer.h:402
size_t bitSizeOfString(StringView stringValue)
size_t bitSizeOfVarInt32(int32_t value)
size_t bitSizeOfVarUInt32(uint32_t value)
BasicStringView< char, std::char_traits< char > > StringView
Definition: StringView.h:968
size_t bitSizeOfVarInt64(int64_t value)
size_t bitSizeOfVarSize(uint32_t value)
size_t bitSizeOfVarUInt64(uint64_t value)
uint32_t convertSizeToUInt32(size_t value)
size_t bitSizeOfVarInt16(int16_t value)
size_t bitSizeOfBitBuffer(const BasicBitBuffer< ALLOC > &bitBuffer)
size_t bitSizeOfVarUInt(uint64_t value)
size_t bitSizeOfVarInt(int64_t value)
size_t bitSizeOfBytes(Span< const uint8_t > bytesValue)
size_t bitSizeOfVarUInt16(uint16_t value)