41 template<
int N,
typename T>
44 for (
int i = 0; i < N; ++i)
46 unsigned char byte = (value >> (i*8)) & 0xFF;
47 ostr.write(reinterpret_cast<char*>(&byte), 1);
57 template<
int N,
typename T>
61 for (
int i = 0; i < N; ++i)
63 unsigned char byte = 0;
64 istr.read(reinterpret_cast<char*>(&byte), 1);
65 value |= byte << (i*8);
76 unsigned char v = value ? 1 : 0;
77 IOUtils::WriteBinary<1, unsigned char>(v, ostr);
86 int v = IOUtils::ReadBinary<1, unsigned char>(istr);
107 IOUtils::WriteBinary<4, unsigned int>(u.iValue, ostr);
126 u.iValue = IOUtils::ReadBinary<4, unsigned int>(istr);
138 int length = value.size();
139 WriteBinary<N, int>(length, ostr);
141 for (
int i = 0; i < length; ++i)
153 int length = ReadBinary<N, int>(istr);
157 for (
int i = 0; i < length; ++i)
void WriteBinaryString(const std::string &value, std::ostream &ostr)
Writes a variable binary string to output stream.
Definition: ioutils.h:136
void WriteBinary(T value, std::ostream &ostr)
Writes a binary number to output stream.
Definition: ioutils.h:42
std::string ReadBinaryString(std::istream &istr)
Reads a variable binary string from output stream.
Definition: ioutils.h:151
bool ReadBinaryBool(std::istream &istr)
Reads a binary 1-byte boolean.
Definition: ioutils.h:84
void WriteBinaryFloat(float value, std::ostream &ostr)
Writes a binary 32-bit float to output stream.
Definition: ioutils.h:95
T ReadBinary(std::istream &istr)
Reads a binary number from input stream.
Definition: ioutils.h:58
void WriteBinaryBool(bool value, std::ostream &ostr)
Writes a binary 1-byte boolean.
Definition: ioutils.h:74
float ReadBinaryFloat(std::istream &istr)
Reads a binary 32-bit float from input stream.
Definition: ioutils.h:115