GCC Code Coverage Report


Directory: ./
File: tmp_project/PhoenixDataStream/src/data_file.h
Date: 2025-03-14 12:18:05
Exec Total Coverage
Lines: 28 28 100.0%
Branches: 14 21 66.7%

Line Branch Exec Source
1 /***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5 ****************************************/
6
7 #ifndef __DATA_FILE_H__
8 #define __DATA_FILE_H__
9
10 #include "data_stream.h"
11
12 ///Save data in a message
13 /** @param[out] iter : message to be written
14 * @param data : data to be saved in the message
15 * @return true on success, false otherwise
16 */
17 template<typename T>
18 bool data_save(FILE* iter, const T & data){
19 return DataStream<FILE*, DataStreamMode::WRITE, T>::data_stream(iter, (T&)data);
20 }
21
22 ///Save data in a message
23 /** @param[out] iter : message to be written
24 * @param data : data to be saved in the message
25 * @param nbElement : number of elements in the data
26 * @return true on success, false otherwise
27 */
28 template<typename T>
29 bool data_save(FILE* iter, const T * data, size_t nbElement){
30 return DataStream<FILE*, DataStreamMode::WRITE, T>::data_stream(iter, (T*)data, nbElement);
31 }
32
33 ///Load data from a message
34 /** @param[out] iter : message to be read
35 * @param[out] data : data to be loaded from the message
36 * @return true on success, false otherwise
37 */
38 template<typename T>
39 bool data_load(FILE* iter, T & data){
40 return DataStream<FILE*, DataStreamMode::READ, T>::data_stream(iter, data);
41 }
42
43 ///Load data from a message
44 /** @param[out] iter : message to be read
45 * @param[out] data : data to be loaded from the message
46 * @param nbElement : number of elements in the data
47 * @return true on success, false otherwise
48 */
49 template<typename T>
50 bool data_load(FILE* iter, T * data, size_t nbElement){
51 return DataStream<FILE*, DataStreamMode::READ, T>::data_stream(iter, data, nbElement);
52 }
53
54 ///Save data in a message
55 /** @param fileName : name of the file to be written
56 * @param data : data to be saved in the message
57 * @return true on success, false otherwise
58 */
59 template<typename T>
60 985 bool data_save(const std::string & fileName, const T & data){
61
1/2
✓ Branch 2 taken 502 times.
✗ Branch 3 not taken.
985 FILE* iter = fopen(fileName.c_str(), "w");
62
2/2
✓ Branch 0 taken 14 times.
✓ Branch 1 taken 488 times.
985 if(iter == NULL){
63 28 return false;
64 }
65
1/2
✓ Branch 1 taken 488 times.
✗ Branch 2 not taken.
957 bool b(DataStream<FILE*, DataStreamMode::WRITE, T>::data_stream(iter, (T&)data));
66
1/2
✓ Branch 1 taken 488 times.
✗ Branch 2 not taken.
957 fclose(iter);
67 957 return b;
68 }
69
70 ///Save data in a message
71 /** @param fileName : name of the file to be written
72 * @param data : data to be saved in the message
73 * @param nbElement : number of elements in the data
74 * @return true on success, false otherwise
75 */
76 template<typename T>
77 4704 bool data_save(const std::string & fileName, const T * data, size_t nbElement){
78
1/1
✓ Branch 2 taken 2352 times.
4704 FILE* iter = fopen(fileName.c_str(), "w");
79
2/2
✓ Branch 0 taken 1176 times.
✓ Branch 1 taken 1176 times.
4704 if(iter == NULL){
80 2352 return false;
81 }
82
1/1
✓ Branch 1 taken 1176 times.
2352 bool b(DataStream<FILE*, DataStreamMode::WRITE, T>::data_stream(iter, (T*)data, nbElement));
83
1/1
✓ Branch 1 taken 1176 times.
2352 fclose(iter);
84 2352 return b;
85 }
86
87 ///Load data from a message
88 /** @param fileName : name of the file to be read
89 * @param[out] data : data to be loaded from the message
90 * @return true on success, false otherwise
91 */
92 template<typename T>
93 501 bool data_load(const std::string & fileName, T & data){
94
1/2
✓ Branch 2 taken 18 times.
✗ Branch 3 not taken.
501 FILE* iter = fopen(fileName.c_str(), "r");
95
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
501 if(iter == NULL){
96 14 return false;
97 }
98
1/2
✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
487 bool b(DataStream<FILE*, DataStreamMode::READ, T>::data_stream(iter, data));
99
1/2
✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
487 fclose(iter);
100 487 return b;
101 }
102
103 ///Load data from a message
104 /** @param fileName : name of the file to be read
105 * @param[out] data : data to be loaded from the message
106 * @param nbElement : number of elements in the data
107 * @return true on success, false otherwise
108 */
109 template<typename T>
110 2352 bool data_load(const std::string & fileName, T * data, size_t nbElement){
111 2352 FILE* iter = fopen(fileName.c_str(), "r");
112 2352 if(iter == NULL){
113 1176 return false;
114 }
115 1176 bool b(DataStream<FILE*, DataStreamMode::READ, T>::data_stream(iter, data, nbElement));
116 1176 fclose(iter);
117 1176 return b;
118 }
119
120 #endif
121