PhoenixDataStream
1.3.0
Framework to save/load/serialize/deserialize data
Toggle main menu visibility
Loading...
Searching...
No Matches
data_stream_write_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_WRITE_MESSAGE_H__
8
#define __DATA_STREAM_WRITE_MESSAGE_H__
9
10
#include "
data_stream_include.h
"
11
12
14
template
<
typename
T>
15
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::WRITE, std::vector<T> >{
17
21
static
bool
data_stream
(
DataStreamIter
& ds, std::vector<T> & data){
22
//Save the size of the data
23
size_t
nbElement(data.size());
24
bool
b =
DataStream<DataStreamIter, DataStreamMode::WRITE, size_t>::data_stream
(ds, nbElement);
25
if
(nbElement == 0lu || !b){
return
b;}
//If there is no element, quit now
26
for
(
typename
std::vector<T>::iterator it(data.begin()); it != data.end(); ++it){
27
b &=
DataStream<DataStreamIter, DataStreamMode::WRITE, T>::data_stream
(ds, *it);
28
}
29
return
b;
30
}
31
};
32
34
template
<
typename
T>
35
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::WRITE, std::list<T> >{
37
41
static
bool
data_stream
(
DataStreamIter
& ds, std::list<T> & data){
42
//Save the size of the data
43
size_t
nbElement(data.size());
44
bool
b =
DataStream<DataStreamIter, DataStreamMode::WRITE, size_t>::data_stream
(ds, nbElement);
45
if
(nbElement == 0lu || !b){
return
b;}
//If there is no element, quit now
46
for
(
typename
std::list<T>::iterator it(data.begin()); it != data.end(); ++it){
47
b &=
DataStream<DataStreamIter, DataStreamMode::WRITE, T>::data_stream
(ds, *it);
48
}
49
return
b;
50
}
51
};
52
54
template
<
typename
T,
typename
U>
55
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::WRITE, std::map<T, U> >{
57
61
static
bool
data_stream
(
DataStreamIter
& ds, std::map<T, U> & data){
62
//Save the size of the data
63
size_t
nbElement(data.size());
64
bool
b =
DataStream<DataStreamIter, DataStreamMode::WRITE, size_t>::data_stream
(ds, nbElement);
65
if
(nbElement == 0lu || !b){
return
b;}
//If there is no element, quit now
66
for
(
typename
std::map<T, U>::iterator it(data.begin()); it != data.end(); ++it){
67
b &=
DataStream<DataStreamIter, DataStreamMode::WRITE, T>::data_stream
(ds, (T&)it->first);
68
b &=
DataStream<DataStreamIter, DataStreamMode::WRITE, U>::data_stream
(ds, it->second);
69
}
70
return
b;
71
}
72
};
73
75
template
<
typename
T,
typename
U>
76
struct
DataStream
<
DataStreamIter
,
DataStreamMode
::WRITE, std::pair<T, U> >{
78
82
static
bool
data_stream
(
DataStreamIter
& ds, std::pair<T, U> & data){
83
bool
b =
DataStream<DataStreamIter, DataStreamMode::WRITE, T>::data_stream
(ds, (T&)data.first);
84
b &=
DataStream<DataStreamIter, DataStreamMode::WRITE, U>::data_stream
(ds, data.second);
85
return
b;
86
}
87
};
88
89
90
91
#endif
92
93
data_stream_include.h
DataStreamIter
DataStreamType * DataStreamIter
Definition
data_stream_include.h:28
DataStreamMode
Definition
data_stream_include.h:18
DataStream< DataStreamIter, DataStreamMode::WRITE, 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_write_message.h:41
DataStream< DataStreamIter, DataStreamMode::WRITE, 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_write_message.h:61
DataStream< DataStreamIter, DataStreamMode::WRITE, 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_write_message.h:82
DataStream< DataStreamIter, DataStreamMode::WRITE, 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_write_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_write_message.h
Generated by
1.17.0