24#ifndef SERIALIZER_IO_HH
25#define SERIALIZER_IO_HH
44 std::size_t binarySize = serializer.
getSize();
48 unsigned int uintBinarySize = (
unsigned int)binarySize;
49 sizeEncoder.
encode(&uintBinarySize, 1);
53 sizeEncoder.
encode(&binarySize, 1);
58 std::size_t blockSize;
59 const bool* dataBuffer =
nullptr;
60 while (dataBuffer = serializer.
getNextBlock(blockSize,
false), dataBuffer !=
nullptr) {
61 dataEncoder.
encode(dataBuffer, blockSize);
72 std::size_t binarySize;
74 unsigned int uintBinarySize;
76 sizeDecoder.
decode(&uintBinarySize, 1);
77 binarySize = uintBinarySize;
81 sizeDecoder.
decode(&binarySize, 1);
88 std::size_t blockSize;
89 bool* dataBuffer =
nullptr;
90 while (dataBuffer = serializer.
getNextBlock(blockSize,
true), dataBuffer !=
nullptr) {
91 dataDecoder.
decode(dataBuffer, blockSize);
99 std::size_t blockSize;
100 const bool* dataBuffer =
nullptr;
101 while (dataBuffer = serializer.
getNextBlock(blockSize,
false), dataBuffer !=
nullptr) {
102 std::memcpy(buffer, dataBuffer, blockSize);
111 std::size_t blockSize;
112 bool* dataBuffer =
nullptr;
113 while (dataBuffer = serializer.
getNextBlock(blockSize,
true), dataBuffer !=
nullptr) {
114 std::memcpy(dataBuffer, buffer, blockSize);
void decode(T *data, size_t length)
void encode(const T *data, size_t length)
Class for writing, reading, sending and receiving Serializable objects.
void resetCounter()
Resets the _iBlock counter.
std::size_t getSize() const
Returns the total memory size in bits.
bool * getNextBlock(std::size_t &sizeBlock, const bool loadingMode)
Returns pointer to the memory of the current block and increments iBlock
Top level namespace for all of OpenLB.
void serializer2buffer(Serializer &serializer, std::uint8_t *buffer)
processes data from a serializer to a given buffer
void serializer2ostr(Serializer &serializer, std::ostream &ostr, bool enforceUint=false)
processes data from a serializer to a given ostr, always in parallel
void buffer2serializer(Serializer &serializer, const std::uint8_t *buffer)
processes a buffer to a serializer
void istr2serializer(Serializer &serializer, std::istream &istr, bool enforceUint=false)
processes an istr to a serializer, always in parallel
#define OLB_PRECONDITION(COND)