31 #ifndef SERUT_SERIALIZATIONINTERFACE_H
33 #define SERUT_SERIALIZATIONINTERFACE_H
35 #include "serutconfig.h"
36 #include <errut/errorbase.h>
37 #include <sys/types.h>
69 virtual bool readBytes(
void *pBuffer,
size_t amount) = 0;
76 virtual bool writeBytes(
const void *pBuffer,
size_t amount) = 0;
91 bool writeLongDoubles(
const long double *pX,
size_t amount) {
return writeArray(pX, amount); }
94 bool writeDoubles(
const double *pX,
size_t amount) {
return writeArray(pX, amount); }
97 bool writeFloats(
const float *pX,
size_t amount) {
return writeArray(pX, amount); }
100 bool writeInt32s(
const int32_t *pX,
size_t amount) {
return writeArray(pX, amount); }
106 bool writeDoubles(
const std::vector<double> &x) {
return writeStdVector(x); }
109 bool writeFloats(
const std::vector<float> &x) {
return writeStdVector(x); }
112 bool writeInt32s(
const std::vector<int32_t> &x) {
return writeStdVector(x); }
130 bool readLongDoubles(
long double *pX,
size_t amount) {
return readArray(pX, amount); }
133 bool readDoubles(
double *pX,
size_t amount) {
return readArray(pX, amount); }
136 bool readFloats(
float *pX,
size_t amount) {
return readArray(pX, amount); }
139 bool readInt32s(int32_t *pX,
size_t amount) {
return readArray(pX, amount); }
145 bool readDoubles(std::vector<double> &x) {
return readStdVector(x); }
148 bool readFloats(std::vector<float> &x) {
return readStdVector(x); }
151 bool readInt32s(std::vector<int32_t> &x) {
return readStdVector(x); }
157 bool writeSingle(T x)
159 if (!writeBytes(&x,
sizeof(T)))
165 bool readSingle(T *x)
167 if (!readBytes(x,
sizeof(T)))
173 bool writeArray(
const T *x,
size_t amount)
175 if (!writeBytes(x,
sizeof(T)*amount))
181 bool readArray(T *x,
size_t amount)
183 if (!readBytes(x,
sizeof(T)*amount))
189 bool writeStdVector(
const std::vector<T> &v)
191 return writeArray(&(v[0]), v.size());
195 bool readStdVector(std::vector<T> &v)
197 return readArray(&(v[0]), v.size());
Generic serialization interface.
Definition: serializationinterface.h:58
bool readFloats(std::vector< float > &x)
Read a vector of floats (the current size of the vector specifies the amount).
Definition: serializationinterface.h:148
bool readDoubles(std::vector< double > &x)
Read a vector of doubles (the current size of the vector specifies the amount).
Definition: serializationinterface.h:145
bool readLongDouble(long double *pX)
Read a long double.
Definition: serializationinterface.h:118
bool writeLongDouble(double x)
Write a long double.
Definition: serializationinterface.h:79
bool writeInt32(int32_t x)
Write a 32-bit integer.
Definition: serializationinterface.h:88
bool writeInt32s(const std::vector< int32_t > &x)
Write the 32-bit integers which are stored in the vector.
Definition: serializationinterface.h:112
bool writeLongDoubles(const std::vector< long double > &x)
Write the long doubles stored in the vector.
Definition: serializationinterface.h:103
bool writeDoubles(const std::vector< double > &x)
Write the doubles stored in the vector.
Definition: serializationinterface.h:106
bool readString(std::string &x)
Read a string.
bool readInt32(int32_t *pX)
Read a 32-bit integer.
Definition: serializationinterface.h:127
bool readDouble(double *pX)
Read a double.
Definition: serializationinterface.h:121
bool readDoubles(double *pX, size_t amount)
Read an array of doubles.
Definition: serializationinterface.h:133
bool writeInt32s(const int32_t *pX, size_t amount)
Write an array of 32-bit integers.
Definition: serializationinterface.h:100
bool readLongDoubles(std::vector< long double > &x)
Read a vector of long doubles (the current size of the vector specifies the amount).
Definition: serializationinterface.h:142
bool readInt32s(int32_t *pX, size_t amount)
Read an array of 32-bit integers.
Definition: serializationinterface.h:139
bool writeDouble(double x)
Write a double.
Definition: serializationinterface.h:82
bool writeString(const std::string &x)
Write a string.
bool readInt32s(std::vector< int32_t > &x)
Read a vector of 32-bit integers (the current size of the vector specifies the amount).
Definition: serializationinterface.h:151
bool readFloats(float *pX, size_t amount)
Read an array of floats.
Definition: serializationinterface.h:136
virtual bool writeBytes(const void *pBuffer, size_t amount)=0
Write a specific amount of data to the serializer.
bool readFloat(float *pX)
Read a float.
Definition: serializationinterface.h:124
bool writeLongDoubles(const long double *pX, size_t amount)
Write an array of doubles.
Definition: serializationinterface.h:91
bool writeFloats(const float *pX, size_t amount)
Write an array of floats.
Definition: serializationinterface.h:97
bool writeFloats(const std::vector< float > &x)
Write the floats stored in the vector.
Definition: serializationinterface.h:109
bool writeDoubles(const double *pX, size_t amount)
Write an array of doubles.
Definition: serializationinterface.h:94
bool writeFloat(float x)
Write a float.
Definition: serializationinterface.h:85
bool readLongDoubles(long double *pX, size_t amount)
Read an array of long doubles.
Definition: serializationinterface.h:130
virtual bool readBytes(void *pBuffer, size_t amount)=0
Read a specific amount of data from the serializer.