PhoenixDataStream  1.0.0
Framework to save/load/serialize/deserialize data
Loading...
Searching...
No Matches
data_stream_enum.h
Go to the documentation of this file.
1/***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5****************************************/
6
7#ifndef __DATA_STREAM_ENUM_H__
8#define __DATA_STREAM_ENUM_H__
9
10#include "data_stream_include.h"
11
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
30#endif
31