PhoenixDataStream
1.3.0
Framework to save/load/serialize/deserialize data
Toggle main menu visibility
Loading...
Searching...
No Matches
data_stream_read_message.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_READ_MESSAGE_H__
8
#define __DATA_STREAM_READ_MESSAGE_H__
9
10
#include "
data_stream_include.h
"
11
12
14
template
<
typename
T>
15
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::READ, std::vector<T> >{
17
21
static
bool
data_stream
(
DataStreamIter
& ds, std::vector<T> & data){
22
//Get the number of elements
23
size_t
nbElement(0lu);
24
bool
b =
DataStream<DataStreamIter,DataStreamMode::READ, size_t>::data_stream
(ds, nbElement);
25
if
(nbElement == 0lu || !b){
return
b;}
//If there is no element, quit now
26
for
(
size_t
i(0lu); i < nbElement && b; ++i){
27
T tmp;
28
b &=
DataStream<DataStreamIter,DataStreamMode::READ, T>::data_stream
(ds, tmp);
29
data.push_back(tmp);
30
}
31
return
b;
32
}
33
};
34
36
template
<
typename
T>
37
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::READ, std::list<T> >{
39
43
static
bool
data_stream
(
DataStreamIter
& ds, std::list<T> & data){
44
//Get the number of elements
45
size_t
nbElement(0lu);
46
bool
b =
DataStream<DataStreamIter,DataStreamMode::READ, size_t>::data_stream
(ds, nbElement);
47
if
(nbElement == 0lu || !b){
return
b;}
//If there is no element, quit now
48
for
(
size_t
i(0lu); i < nbElement && b; ++i){
49
T tmp;
50
b &=
DataStream<DataStreamIter,DataStreamMode::READ, T>::data_stream
(ds, tmp);
51
data.push_back(tmp);
52
}
53
return
b;
54
}
55
};
56
58
template
<
typename
T,
typename
U>
59
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::READ, std::map<T, U> >{
61
65
static
bool
data_stream
(
DataStreamIter
& ds, std::map<T, U> & data){
66
//Get the number of elements
67
size_t
nbElement(0lu);
68
bool
b =
DataStream<DataStreamIter,DataStreamMode::READ, size_t>::data_stream
(ds, nbElement);
69
if
(nbElement == 0lu || !b){
return
b;}
//If there is no element, quit now
70
for
(
size_t
i(0lu); i < nbElement && b; ++i){
71
T tmpFirst;
72
b &=
DataStream<DataStreamIter,DataStreamMode::READ, T>::data_stream
(ds, tmpFirst);
73
U tmpSecond;
74
b &=
DataStream<DataStreamIter,DataStreamMode::READ, U>::data_stream
(ds, tmpSecond);
75
data[tmpFirst] = tmpSecond;
//Add data in map
76
}
77
return
b;
78
}
79
};
80
82
template
<
typename
T,
typename
U>
83
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::READ, std::pair<T, U> >{
85
89
static
bool
data_stream
(
DataStreamIter
& ds, std::pair<T, U> & data){
90
T tmpFirst;
91
bool
b =
DataStream<DataStreamIter,DataStreamMode::READ, T>::data_stream
(ds, tmpFirst);
92
U tmpSecond;
93
b &=
DataStream<DataStreamIter,DataStreamMode::READ, U>::data_stream
(ds, tmpSecond);
94
data = std::pair<T, U>(tmpFirst, tmpSecond);
95
return
b;
96
}
97
};
98
99
100
101
#endif
102
103
data_stream_include.h
DataStreamIter
DataStreamType * DataStreamIter
Definition
data_stream_include.h:28
DataStreamMode
Definition
data_stream_include.h:18
DataStream< DataStreamIter, DataStreamMode::READ, std::list< T > >::data_stream
static bool data_stream(DataStreamIter &ds, std::list< T > &data)
Get the size of a class std::list T.
Definition
data_stream_read_message.h:43
DataStream< DataStreamIter, DataStreamMode::READ, std::map< T, U > >::data_stream
static bool data_stream(DataStreamIter &ds, std::map< T, U > &data)
Get the size of a class std::list T.
Definition
data_stream_read_message.h:65
DataStream< DataStreamIter, DataStreamMode::READ, std::pair< T, U > >::data_stream
static bool data_stream(DataStreamIter &ds, std::pair< T, U > &data)
Get the size of a class std::list T.
Definition
data_stream_read_message.h:89
DataStream< DataStreamIter, DataStreamMode::READ, std::vector< T > >::data_stream
static bool data_stream(DataStreamIter &ds, std::vector< T > &data)
Get the size of a class std::vector T.
Definition
data_stream_read_message.h:21
DataStream
Generic DataStream class.
Definition
data_stream_include.h:32
DataStream::data_stream
static bool data_stream(Stream &ds, T &data)
Dummy function to catch if a type is not specialised.
Definition
data_stream_include.h:37
src
data_stream_read_message.h
Generated by
1.17.0