PhoenixDataStream  1.0.0
Framework to save/load/serialize/deserialize data
Loading...
Searching...
No Matches
data_stream_enum.h File Reference
+ Include dependency graph for data_stream_enum.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PHOENIX_DATA_STREAM_ENUM(X)
 Macro which allows to simply integrate enum types into Data Stream workflow.
 

Macro Definition Documentation

◆ PHOENIX_DATA_STREAM_ENUM

#define PHOENIX_DATA_STREAM_ENUM ( X)
Value:
template<typename Stream> \
struct DataStream<Stream, DataStreamMode::READ, X>{ \
static bool data_stream(Stream & ds, X & data){ \
int value(0); \
data = (X)value; \
return b; \
} \
}; \
template<typename Stream> \
struct DataStream<Stream, DataStreamMode::WRITE, X>{ \
static bool data_stream(Stream & ds, X & data){ \
int value = (int)data; \
} \
}; \
DataStreamMode
Stream mode : READ or WRITE.
Generic DataStream class.
static bool data_stream(Stream &ds, T &data)
Dummy function to catch if a type is not specialised.

Macro which allows to simply integrate enum types into Data Stream workflow.

Definition at line 13 of file data_stream_enum.h.

13#define PHOENIX_DATA_STREAM_ENUM(X) template<typename Stream> \
14struct DataStream<Stream, DataStreamMode::READ, X>{ \
15 static bool data_stream(Stream & ds, X & data){ \
16 int value(0); \
17 bool b = DataStream<Stream, DataStreamMode::READ, int>::data_stream(ds, value); \
18 data = (X)value; \
19 return b; \
20 } \
21}; \
22template<typename Stream> \
23struct DataStream<Stream, DataStreamMode::WRITE, X>{ \
24 static bool data_stream(Stream & ds, X & data){ \
25 int value = (int)data; \
26 return DataStream<Stream, DataStreamMode::WRITE, int>::data_stream(ds, value); \
27 } \
28}; \
29