OSFI-C++  3.9.2
OpenSF Integration Library
Parameter.h
1 /*
2  * openSF Integration Libraries (OSFI)
3  * Deimos Space, S.L.U.
4  *
5  * This file is part of OSFI. OSFI is free software; you can redistribute it
6  * and/or modify it under the terms of the 'ESA Software Community Licence Permissive' as
7  * published by the European Space Agency; either version 2.4 of the License,
8  * or (at your option) any later version. You should have received a
9  * copy of the 'ESA Software Community Licence Permissive - v2.4' along with this program
10  * or one can be found at <http://eop-cfi.esa.int/index.php/docs-and-mission-data/licensing-documents>.
11  *
12  * @file
13  * @brief OSFI-C++ header that declares the class that represents parameters in a configuration file.
14  */
15 
16 #ifndef OSFI_CONFM_PARAMETER_H_
17 #define OSFI_CONFM_PARAMETER_H_
18 
19 #include "ConFM/base.h"
20 #include "ConFM/DynamicArray.h"
21 #include "ConFM/ArrayNode.h"
22 
23 using namespace std;
24 
31 class Parameter final
32 {
33 public:
37  using ElementType = osfi::confm::ElementType; // Alias kept for API compatibility
38 
40  Parameter(string aName, string aDescription, string aType,
41  ArrayNode root, string aUnits, string aMin, string aMax, vector<int> dims);
42 
52  Parameter(string aName, string aDescription, string aType, string aValue);
53 
67  Parameter(string aName, string aDescription, string aType, string aValue,
68  string aUnits, string aMin, string aMax, vector<int> dims);
69 
77  Parameter(string aName, string aMin, string aMax);
78 
82  Parameter();
83 
87  void print() const;
88 
94  OSFI_DEPRECATED("Ambiguously-named function to be removed, use getRawValue instead.")
95  virtual string getValue();
96 
98  string getRawValue() const;
99 
104  int getIntValue() const;
105 
110  double getDoubleValue() const;
111 
116  bool getBooleanValue() const;
117 
122  string getStringValue() const;
123 
128  osfi::confm::TimeValue getTimeValue() const;
129 
134  vector<string> getVectorString() const;
135 
140  vector<string> getVectorFile() const;
141 
146  vector<double> getVectorDouble() const;
147 
152  vector<int> getVectorInt() const;
153 
158  vector<bool> getVectorBoolean() const;
159 
164  vector<osfi::confm::TimeValue> getVectorTime() const;
165 
170  DynamicArray<double> getMatrixDouble() const;
171 
176  DynamicArray<int> getMatrixInt() const;
177 
182  DynamicArray<string> getMatrixString() const;
183 
188  DynamicArray<string> getMatrixFile() const;
189 
196  DynamicArray<bool> fileExist() const;
197 
202  DynamicArray<bool> getMatrixBoolean() const;
203 
208  DynamicArray<osfi::confm::TimeValue> getMatrixTime() const;
209 
215  string getFileValue() const;
216 
221  void setValue(string aValue);
222 
227  int getNdims() const;
228 
233  const vector<int>& getDims() const;
234 
240  OSFI_DEPRECATED("Ambiguous function, instead use getLocalName or getPath")
241  string getName();
242 
247  string getLocalName() const;
248 
253  string getPath() const;
254 
259  string getDescription() const;
260 
265  string getUnits() const;
266 
271  string getMax() const;
272 
277  string getMin() const;
278 
283  string getType() const;
284 
291  OSFI_DEPRECATED("Superseded by getElementType and isArray")
292  int getParamType();
293 
295  ElementType getElementType() const;
296 
300  static const string delimitier;
301 
305  static const string stringDelimitier;
306 
309  virtual bool isArray() const;
310 
312  const ArrayNode& getRootNode() const;
316  const ArrayNode& getNode(const vector<int>& indexs) const;
318  vector<bool> getVectorBoolean(const vector<int>& indexs) const;
320  vector<string> getVectorString(const vector<int>& indexs) const;
322  vector<string> getVectorFile(const vector<int>& indexs) const;
324  vector<double> getVectorDouble(const vector<int>& indexs) const;
326  vector<int> getVectorInt(const vector<int>& indexs) const;
328  vector<osfi::confm::TimeValue> getVectorTime(const vector<int>& indexs) const;
329 
330  int getDims(const vector<int>& indexs) const;
331 
332  bool isLeaf(const vector<int>& indexs) const;
333 
334 protected:
341  string getFileFormattedValue(string file) const;
342 
348  bool FileExists(const string& strFilename) const;
349 
356  string name;
357 
363  string description;
364 
366  ElementType elType;
367 
373  string value_;
374 
381  string units;
382 
388  string min;
389 
395  string max;
396 
409  vector<int> dims;
410 
412  ArrayNode root_;
413  bool isArrayParam = false;
414 
415 };
416 
417 #endif // OSFI_CONFM_PARAMETER_H_
Parameter
Definition: Parameter.h:31
osfi::confm::ElementType
ElementType
Definition: base.h:38
DynamicArray
Definition: DynamicArray.h:26
ArrayNode
Definition: ArrayNode.h:23
OSFI_DEPRECATED
#define OSFI_DEPRECATED(reason)
Definition: CLP.h:26