GCC Code Coverage Report


Directory: ./
File: tmp_project/DataStream/src/data_file.h
Date: 2024-12-09 11:00:39
Exec Total Coverage
Lines: 28 28 100.0%
Branches: 14 15 93.3%

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 1097 bool data_save(const std::string & fileName, const T & data){
61
1/1
✓ Branch 2 taken 549 times.
1097 FILE* iter = fopen(fileName.c_str(), "w");
62
2/2
✓ Branch 0 taken 133 times.
✓ Branch 1 taken 416 times.
1097 if(iter == NULL){
63 266 return false;
64 }
65
1/1
✓ Branch 1 taken 416 times.
831 bool b(DataStream<FILE*, DataStreamMode::WRITE, T>::data_stream(iter, (T&)data));
66
1/1
✓ Branch 1 taken 416 times.
831 fclose(iter);
67 831 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 4312 bool data_save(const std::string & fileName, const T * data, size_t nbElement){
78
1/1
✓ Branch 2 taken 2156 times.
4312 FILE* iter = fopen(fileName.c_str(), "w");
79
2/2
✓ Branch 0 taken 1078 times.
✓ Branch 1 taken 1078 times.
4312 if(iter == NULL){
80 2156 return false;
81 }
82
1/1
✓ Branch 1 taken 1078 times.
2156 bool b(DataStream<FILE*, DataStreamMode::WRITE, T>::data_stream(iter, (T*)data, nbElement));
83
1/1
✓ Branch 1 taken 1078 times.
2156 fclose(iter);
84 2156 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 550 bool data_load(const std::string & fileName, T & data){
94
1/1
✓ Branch 2 taken 1 times.
550 FILE* iter = fopen(fileName.c_str(), "r");
95
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
550 if(iter == NULL){
96 141 return false;
97 }
98
1/1
✓ Branch 1 taken 1 times.
409 bool b(DataStream<FILE*, DataStreamMode::READ, T>::data_stream(iter, data));
99
1/1
✓ Branch 1 taken 1 times.
409 fclose(iter);
100 409 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 2156 bool data_load(const std::string & fileName, T * data, size_t nbElement){
111 2156 FILE* iter = fopen(fileName.c_str(), "r");
112 2156 if(iter == NULL){
113 1078 return false;
114 }
115 1078 bool b(DataStream<FILE*, DataStreamMode::READ, T>::data_stream(iter, data, nbElement));
116 1078 fclose(iter);
117 1078 return b;
118 }
119
120 #endif
121