5#ifndef TRIGSTEERINGEVENT_STRINGSERIALIZER_H
6#define TRIGSTEERINGEVENT_STRINGSERIALIZER_H
35 void serialize (
const std::vector<std::string>& strings, std::vector<uint32_t>& storage );
36 void serialize (
const std::string&
str, std::vector<uint32_t>& storage );
47 std::size_t
deserialize (std::vector<uint32_t>::const_iterator first,
48 std::vector<uint32_t>::const_iterator last,
49 std::vector<std::string>& strings);
52 std::size_t
deserialize (
const std::vector<uint32_t>& storage, std::vector<std::string>& strings ) {
53 return deserialize(storage.begin(), storage.end(), strings);
57 std::size_t
deserialize (std::vector<uint32_t>::const_iterator first,
58 std::vector<uint32_t>::const_iterator last,
62 std::size_t
deserialize (
const std::vector<uint32_t>& storage, std::string&
str ) {
69 unsigned int inquireSize(
const std::vector<uint32_t>& storage);
77 return (
sizeof(uint32_t) - sizeToReserve%
sizeof(uint32_t)) %
sizeof(uint32_t);
Utility class (not a tool or so) to serialize strings into stream of 32bit integers.
std::istringstream m_istream
sstream used in de-serialization
static const char *const s_delimiter
default delimeter which is put between strings from the input vector while serialization happens
void serialize(const std::vector< std::string > &strings, std::vector< uint32_t > &storage)
Serializes vector of strings into vector of integers.
std::size_t deserialize(std::vector< uint32_t >::const_iterator first, std::vector< uint32_t >::const_iterator last, std::vector< std::string > &strings)
Deserialize vector into strings.
std::ostringstream m_ostream
sstream used in serialization
unsigned int inquireSize(const std::vector< uint32_t > &storage)
Return number of strings serialized into 'storage'.
unsigned int getPadding(unsigned int sizeToReserve)
Get number of padding bytes needed to align with uint32_t.
std::size_t deserialize(const std::vector< uint32_t > &storage, std::string &str)
Deserialize one single string.
std::size_t deserialize(const std::vector< uint32_t > &storage, std::vector< std::string > &strings)
Same as above but with vector instead of iterators.