Line |
Branch |
Exec |
Source |
1 |
|
|
/*************************************** |
2 |
|
|
Auteur : Pierre Aubert |
3 |
|
|
Mail : pierre.aubert@lapp.in2p3.fr |
4 |
|
|
Licence : CeCILL-C |
5 |
|
|
****************************************/ |
6 |
|
|
|
7 |
|
|
#include "phoenix_data_stream_ppath.h" |
8 |
|
|
|
9 |
|
|
///Load a PPath from a file |
10 |
|
|
/** @param[out] ds : file iterator which contains PPath |
11 |
|
|
* @param data : PPath to be loaded |
12 |
|
|
* @return true on success, false otherwise |
13 |
|
|
*/ |
14 |
|
✗ |
bool DataStream<FILE*, DataStreamMode::READ, PPath>::data_stream(FILE* & ds, PPath & data){ |
15 |
|
✗ |
size_t nbElement(0lu); |
16 |
|
✗ |
bool b = DataStream<FILE*, DataStreamMode::READ, size_t>::data_stream(ds, nbElement); |
17 |
|
✗ |
if(nbElement == 0lu || !b){return b;} |
18 |
|
✗ |
data.resize(nbElement); |
19 |
|
✗ |
return fread((void*)data.data(), sizeof(char), nbElement, ds) == nbElement; |
20 |
|
|
} |
21 |
|
|
|
22 |
|
|
|
23 |
|
|
///Save a PPath into a file |
24 |
|
|
/** @param[out] ds : file iterator to be written |
25 |
|
|
* @param data : PPath to be saved |
26 |
|
|
* @return true on success, false otherwise |
27 |
|
|
*/ |
28 |
|
✗ |
bool DataStream<FILE*, DataStreamMode::WRITE, PPath>::data_stream(FILE* & ds, PPath & data){ |
29 |
|
✗ |
size_t nbElement(data.size()); |
30 |
|
✗ |
bool b = DataStream<FILE*, DataStreamMode::WRITE, size_t>::data_stream(ds, nbElement); |
31 |
|
✗ |
if(nbElement == 0lu || !b){return b;} |
32 |
|
✗ |
return fwrite(data.data(), sizeof(char), nbElement, ds) == nbElement; |
33 |
|
|
} |
34 |
|
|
|
35 |
|
|
///Get the size of a PPath |
36 |
|
|
/** @param[out] ds : size of the PPath |
37 |
|
|
* @param data : data to be used |
38 |
|
|
* @return true on success, false otherwise |
39 |
|
|
*/ |
40 |
|
✗ |
bool DataStream<size_t, DataStreamMode::WRITE, PPath>::data_stream(size_t & ds, PPath & data){ |
41 |
|
✗ |
ds += data.size() + sizeof(size_t); //Number of char + sizeof(size_t) to store the number of char |
42 |
|
✗ |
return true; |
43 |
|
|
} |
44 |
|
|
|
45 |
|
|
///Load a PPath from a message |
46 |
|
|
/** @param[out] ds : message iterator which contains PPath |
47 |
|
|
* @param data : PPath to be loaded |
48 |
|
|
* @return true on success, false otherwise |
49 |
|
|
*/ |
50 |
|
✗ |
bool DataStream<DataStreamIter, DataStreamMode::READ, PPath>::data_stream(DataStreamIter & ds, PPath & data){ |
51 |
|
✗ |
size_t nbElement(0lu); |
52 |
|
✗ |
bool b = DataStream<DataStreamIter, DataStreamMode::READ, size_t>::data_stream(ds, nbElement); |
53 |
|
✗ |
if(nbElement == 0lu || !b){return b;} |
54 |
|
✗ |
data.resize(nbElement); |
55 |
|
✗ |
memcpy((DataStreamIter)data.data(), ds, nbElement); |
56 |
|
✗ |
ds += nbElement; |
57 |
|
✗ |
return b; |
58 |
|
|
} |
59 |
|
|
|
60 |
|
|
|
61 |
|
|
///Save a PPath into a message |
62 |
|
|
/** @param[out] ds : message iterator to be written |
63 |
|
|
* @param data : PPath to be saved |
64 |
|
|
* @return true on success, false otherwise |
65 |
|
|
*/ |
66 |
|
✗ |
bool DataStream<DataStreamIter, DataStreamMode::WRITE, PPath>::data_stream(DataStreamIter & ds, PPath & data){ |
67 |
|
✗ |
size_t nbElement(data.size()); |
68 |
|
✗ |
bool b = DataStream<DataStreamIter, DataStreamMode::WRITE, size_t>::data_stream(ds, nbElement); |
69 |
|
✗ |
if(nbElement == 0lu || !b){return b;} |
70 |
|
✗ |
memcpy(ds, (const DataStreamIter)data.data(), nbElement); |
71 |
|
✗ |
ds += nbElement; |
72 |
|
✗ |
return b; |
73 |
|
|
} |
74 |
|
|
|
75 |
|
|
|
76 |
|
|
|