omni::structuredlog::BinaryBlobSizeCalculator
Defined in omni/structuredlog/BinarySerializer.h
-
class BinaryBlobSizeCalculator
A helper class to calculate the required size of a binary blob.
To use this, just track all of the data that you want to insert into your binary blob.
Public Functions
-
inline size_t getSize()
Retrieve the tracked blob size.
- Returns
The memory size that is needed to store this blob.
-
template<typename T>
inline void track(T v) Track a primitive type.
- Parameters
v – [in] The value to track. The actual value doesn’t matter; only the type matters.
-
template<typename T>
inline void track(T *v, uint16_t len) Track an array type.
- Parameters
v – [in] The array of values to track. This may also be a string.
len – [in] The number of elements in array
v
. If this is a string, this length includes the null terminator.
-
inline void track(const StringView &v)
Track a StringView.
- Parameters
v – [in] The string view to track.
-
inline void track(StringView &v)
Track a StringView.
- Parameters
v – [in] The string view to track.
-
inline void track(const char *const *v, const uint16_t *stringLengths, uint16_t len)
Track an array of strings into the buffer with pre-calculated lengths.
Note
This overload exists to avoid having to perform a strlen() on each string in the array twice (once when calculating the buffer size and once when writing the buffer).
- Parameters
v – [in] The array of strings to track. This may not be nullptr. The elements of this array may be nullptr; each element of this must be a null terminated string otherwise.
stringLengths – [in] The length of each string in
v
. These length must include the null terminator of the string. This may not be nullptr.len – [in] The number of elements in array
v
and arraystringLengths
.
- Returns
true
if the value was successfully written.- Returns
false
if the blob ran out of buffer space.
-
inline void track(const char *const *v, uint16_t len)
Track an array of strings type.
- Parameters
v – [in] The array of strings to track. This may not be nullptr. The elements of this array may be nullptr; each element of this must be a null terminated string otherwise.
len – [in] The number of elements in array
v
.
Public Static Functions
-
template<typename T>
static inline size_t alignOffset(size_t offset) Round an offset up to be aligned for a given type.
- Parameters
offset – [in] The offset to align.
- Returns
offset
rounded up to be aligned for the specified type.
Public Static Attributes
-
static constexpr uint32_t kVersion = 0
The version of binary blob ABI Headers that use these binary blobs should static assert on its version.
Do not modify the layout of the binary blob without incrementing this.
-
inline size_t getSize()