Blame view

src/ParamOutputImpl/Download/FileWriterASCIIJson.hh 4.79 KB
fbe3c2bb   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
 * FileWriterASCIIJson.hh
 *
 *  Created on: 21 oct. 2014
 *      Author: AKKA
 */

#ifndef FILEWRITERASCIIJSON_HH_
#define FILEWRITERASCIIJSON_HH_

#include "FileWriterASCIIAbstract.hh"

namespace AMDA {
namespace ParamOutputImpl {
namespace Download {
namespace FileWriter {

using namespace AMDA::Info;

/**
 * @class FileWriterASCIIJson
 * @brief Implementation of FileWriterASCIIAbstract for JSON file format.
 * @details
 */
class FileWriterASCIIJson : public FileWriterASCIIAbstract
{
public:
	/*
	 * @brief Constructor
	 */
	FileWriterASCIIJson(AMDA::Parameters::ParameterManager& pParameterManager);

	/*
	 * @brief Destructor
	 */
	virtual ~FileWriterASCIIJson(void);

	/*
	 * @overload FileWriterASCIIAbstract::getExtension - Method to get file format extension for json format
	 */
	virtual std::string getExtension(void);

	/*
	 * @overload  FileWriterASCIIAbstract::getDataFillCharacter Method to get fill character to use for json format
	 */
	virtual std::string getDataFillCharacter(void);

	/*
9d8ec7d4   Benjamin Renard   Define a specific...
49
50
51
52
53
	 * @overload FileWriterASCIIAbstract::getDataFillCharacter Method to get string representation of a Not A Number
	 */
	virtual std::string getNanString(void);

	/*
fbe3c2bb   Benjamin Renard   First commit
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
	 * @overload  FileWriterASCIIAbstract::writeBeginFile method to write begin file tag for json format
	 */
	virtual void writeBeginFile(void);

	/*
	 * @overload  FileWriterASCIIAbstract::writeEndFile method to write end file tag for json format
	 */
	virtual void writeEndFile(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeBeginGeneralDescription method to write begin description tag for json format
	 */
	virtual void writeBeginGeneralDescription(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeEndGeneralDescription method to write end description tag for json format
	 */
	virtual void writeEndGeneralDescription(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeErrorInfo method to write an error message for json format
	 */
	virtual void writeErrorInfo(std::string msg);

	/*
	 * @overload FileWriterASCIIAbstract::writeBeginInfoGroup method to write begin info group tag with a title for json format
	 */
	virtual void writeBeginInfoGroup(std::string title, int level);

	/*
	 * @overload FileWriterASCIIAbstract::writeEndInfoGroup method to write end info group tag with a title for json format
	 */
	virtual void writeEndInfoGroup(int level);

	/*
	 * @overload FileWriterASCIIAbstract::writeSingleInfo method to write an info designated by a key and a value for json format
	 */
	virtual void writeSingleInfo(std::string key, std::string value, int level);

	/*
	 * @overload FileWriterASCIIAbstract::writeBeginInfoList method to write begin info list tag with a title for json format
	 */
	virtual void writeBeginInfoList(std::string title, int level);

	/*
	 * @overload FileWriterASCIIAbstract::writeEndInfoList method to write end info list tag with a title for json format
	 */
	virtual void writeEndInfoList(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeBeginFieldsDescription method to write begin info fields description tag for json format
	 */
	virtual void writeBeginFieldsDescription(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeEndFieldsDescription method to write end info fields description tag for json format
	 */
	virtual void writeEndFieldsDescription(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeFieldDescription method to write a field description by parameter id for json format
	 */
	virtual void writeFieldDescription(std::string paramId);

	/*
	 * @overload FileWriterASCIIAbstract::writeBeginData method to write begin data tag for json format
	 */
	virtual void writeBeginData(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeEndData method to write end data tag for json format
	 */
	virtual void writeEndData(void);

	/*
	 * @overload FileWriterASCIIAbstract::writeDataRecord method to write a data record for json format
	 */
	virtual void writeDataRecord(std::string record);

	/*
	 * @overload FileWriterASCIIAbstract::getDataStartTag method to get data start tag for json format
	 */
	virtual std::string getDataStartTag(bool isTimeData);

	/*
	 * @overload FileWriterASCIIAbstract::getDataStopTag method to get data stop tag for json format
	 */
	virtual std::string getDataStopTag(void);

	/*
	 * @overload FileWriterASCIIAbstract::getDataValueSeparator method to get data value separator for json format
	 */
	virtual std::string getDataValueSeparator(void);

8bed959f   Benjamin Renard   Trim data value i...
148
149
150
151
152
	/*
         * @overload FileWriterASCIIAbstract::trimData  method used to know if data must be trimmed
         */
	virtual bool trimData(void);

fbe3c2bb   Benjamin Renard   First commit
153
154
155
156
157
158
159
160
161
162
163
164
165
private:
	/*
	 * @brief List of boolean to know if a first element is already write in a group for json format
	 */
	std::list<bool> isFirstInfo;
};

} /* namespace FileWriter */
} /* namespace Download */
} /* namespace ParamOutputImpl */
} /* namespace AMDA */

#endif /* FILEWRITERASCIIJSON_HH_ */