6 #ifndef IFW_CTD_DEFINES_HPP_
7 #define IFW_CTD_DEFINES_HPP_
15 #include "rad/Logger.hpp"
16 #include "rad/Exceptions.hpp"
21 std::string
Print(
const char* format, ...);
81 static const std::map<DataType, std::string> s_data_types_nb_map =
104 static const std::map<std::string, DataType> s_data_types_name_map =
138 static const std::map<DataType, std::string> s_data_type_2_type_id_map =
160 static const std::map<std::string, DataType> s_type_id_2_data_type_map =
183 template <
class TYPE>
bool SupportedType(
const TYPE& variable) {
193 const std::string
EXT_FITS =
"fits";
194 const std::string
EXT_YAML =
"yaml";
195 const std::string
EXT_XML =
"xml";
203 const std::string
TRUE_STR =
"True";
209 const int64_t
ERROR = -1;
234 const std::string
ALL_STR =
"All";
235 const std::string
NONE_STR =
"None";
238 const std::string
BUSY_STR =
"Busy";
255 const std::string
ON_STR =
"On";
256 const std::string
OFF_STR =
"Off";
257 const std::string
OK_STR =
"OK";
261 template <
class TYPE>
class List:
public std::list<TYPE> {
266 std::advance(list_it, index);
273 const List<TYPE>& list,
275 List<TYPE>& clean_list) {
277 typename List<TYPE>::iterator list_it;
278 for (list_it = list.begin(); list_it != list.end(); list_it++) {
279 if (*list_it != pattern) {
280 clean_list.push_back(*list_it);
287 template <
class TYPE>
void CheckRange(
const std::string& par,
294 template <
class TYPE>
void CheckRange(
const std::string& par,
296 List<TYPE>& valid_values);
299 template <
class TYPE> int32_t
ElInList(
300 const List<TYPE>& list,
304 for (
auto list_it = list.begin(); list_it != list.end(); list_it++, i++) {
305 if (*list_it == value) {
313 template <
class TYPE> std::string
DumpList(
314 const List<TYPE>& list,
315 const std::string& separator =
"\n") {
317 std::stringstream tmp_buf;
319 for (
auto list_it = list.begin(); list_it != list.end(); list_it++, i++) {
320 tmp_buf << *list_it << separator;
322 return tmp_buf.str();
326 template <
class MAP_TYPE>
bool ElInMap(
const std::string& key,
327 const MAP_TYPE& map) {
328 return (map.find(key) != map.end());
338 #endif // IFW_CTD_DEFINES_HPP_
double value
Definition: easylogging++.h:814
const std::string DATA_TYPE_BLOB_STR
Definition: defines.hpp:77
Definition: defines.hpp:35
DataType IfwDataTypeToNumeric(const std::string &data_type)
Data type IFW string representation to IFW numeric representation.
Definition: defines.cpp:31
optional bool index
Definition: topics.proto:34
const std::string NOT_IMPLEMENTED_STR
Definition: defines.hpp:219
const std::string RECEIVING_STR
Definition: defines.hpp:247
Definition: defines.hpp:42
const std::map< std::string, DataType > & TypeId2DataTypeMap()
Return reference to data types numeric to string map.
Definition: defines.cpp:60
const std::string LOADING_STR
Definition: defines.hpp:251
const std::string EXT_FITS
Definition: defines.hpp:193
const std::string DATA_TYPE_NON_BASIC_STR
Definition: defines.hpp:74
const std::map< DataType, std::string > & DataTypesNbMap()
Return reference to data types numeric to string map.
Definition: defines.cpp:17
Definition: defines.hpp:36
Definition: defines.hpp:37
const std::string UNKNOWN_STR
Definition: defines.hpp:225
Definition: defines.hpp:45
const std::string NO_TIMEOUT_STR
Definition: defines.hpp:207
const std::string DATA_TYPE_TIMESTAMP_STR
Definition: defines.hpp:76
const std::string ADJUSTING_STR
Definition: defines.hpp:246
const std::string INDEFINITE_STR
Definition: defines.hpp:233
const std::string NONE_STR
Definition: defines.hpp:235
const std::string UNDEFINED_STR
Definition: defines.hpp:222
const int64_t UNKNOWN
Definition: defines.hpp:224
const std::string READING_STR
Definition: defines.hpp:250
const std::string MOVING_STR
Definition: defines.hpp:240
const std::string INVALID_STR
Definition: defines.hpp:216
const std::string DATA_TYPE_FLOAT_STR
Definition: defines.hpp:71
void CleanList(const List< TYPE > &list, const TYPE &pattern, List< TYPE > &clean_list)
Remove elements from list, which are equal to "pattern".
Definition: defines.hpp:272
const int64_t ERROR
Definition: defines.hpp:209
const std::string ACTIVE_STR
Definition: defines.hpp:239
const std::string EXT_CONFIG
Definition: defines.hpp:196
const std::string PARSING_STR
Definition: defines.hpp:252
DataType
Data types numeric representations.
Definition: defines.hpp:33
const std::string PROCESSING_STR
Definition: defines.hpp:237
const std::string INITIALIZING_STR
Definition: defines.hpp:243
TYPE & operator[](const int32_t index)
Definition: defines.hpp:264
const std::string DATA_TYPE_BOOLEAN_STR
Definition: defines.hpp:62
const std::string OFF_STR
Definition: defines.hpp:256
const std::string CALIBRATING_STR
Definition: defines.hpp:245
bool ElInMap(const std::string &key, const MAP_TYPE &map)
Check if a given key is contained in an STL map.
Definition: defines.hpp:326
const std::string NOT_OK_STR
Definition: defines.hpp:258
Definition: defines.hpp:55
const std::string EXT_YAML
Definition: defines.hpp:194
const int64_t UNDEFINED
Definition: defines.hpp:221
Definition: defines.hpp:49
const std::string DATA_TYPE_UINT8_STR
Definition: defines.hpp:64
@ brief STL like list that can be indexed with []'s.
Definition: defines.hpp:262
const std::string ACQUIRING_STR
Definition: defines.hpp:253
Definition: defines.hpp:50
const std::string DATA_TYPE_INT16_STR
Definition: defines.hpp:65
const std::string COMPLETED_STR
Definition: defines.hpp:236
Definition: defines.hpp:46
const std::map< DataType, std::string > & DataType2TypeIdMap()
Return reference to data types numeric to string map.
Definition: defines.cpp:54
const std::string SUCCESS_STR
Definition: defines.hpp:231
void IFW_DEBUG(const char *format,...)
Print out a temporary debug log. These kind of logs should be removed from the code.
Definition: defines.cpp:87
std::string IsoTime
ISO8601 data type.
Definition: defines.hpp:29
const int64_t INVALID
Definition: defines.hpp:215
const int64_t FAILURE
Definition: defines.hpp:227
const std::string DATA_TYPE_UINT16_STR
Definition: defines.hpp:66
const std::string ERROR_STR
Definition: defines.hpp:210
const std::string INSTALLING_STR
Definition: defines.hpp:254
const std::string WARMING_UP_STR
Definition: defines.hpp:241
const int64_t SUCCESS
Definition: defines.hpp:230
const std::map< std::string, DataType > & DataTypesNameMap()
Return reference to data types numeric to string map.
Definition: defines.cpp:24
const std::string DATA_TYPE_INT32_STR
Definition: defines.hpp:67
const std::string FAILURE_STR
Definition: defines.hpp:228
const std::string DATA_TYPE_INT8_STR
Definition: defines.hpp:63
int32_t ElInList(const List< TYPE > &list, const TYPE &value)
Check for specific element in the list.
Definition: defines.hpp:299
const std::string BUSY_STR
Definition: defines.hpp:238
const std::string COOLING_DOWN_STR
Definition: defines.hpp:242
const std::string DATA_TYPE_UINT64_STR
Definition: defines.hpp:70
std::string DumpList(const List< TYPE > &list, const std::string &separator="\n")
Dump contents of a list into a string buffer.
Definition: defines.hpp:313
const std::string ALL_STR
Definition: defines.hpp:234
const std::string ON_STR
Definition: defines.hpp:255
bool SupportedType(const TYPE &variable)
Check if the variable has a data type which is supported by the ELT ICS.
Definition: defines.hpp:183
const std::string OFFSETTING_STR
Definition: defines.hpp:244
Definition: defines.hpp:41
std::string Print(const char *format,...)
Create formatted string, return formatted string (C formatting convention).
Definition: defines.cpp:71
#define RAD_LOG_TRACE()
Definition: Logger.hpp:319
Definition: defines.hpp:48
const int64_t ILLEGAL
Definition: defines.hpp:212
Definition: defines.hpp:47
void CheckRange(const std::string &par, TYPE value, TYPE lower_limit, TYPE upper_limit)
Check if a value is within a given range.
Definition: defines.hpp:38
const std::string ILLEGAL_STR
Definition: defines.hpp:213
const std::string TRANSFERRING_STR
Definition: defines.hpp:248
Definition: defines.hpp:43
Definition: defines.hpp:39
const std::string TRUE_STR
Definition: defines.hpp:203
const std::string OK_STR
Definition: defines.hpp:257
const std::string DATA_TYPE_INT64_STR
Definition: defines.hpp:69
const std::string DATA_TYPE_DOUBLE_STR
Definition: defines.hpp:72
const int64_t NO_TIMEOUT
Definition: defines.hpp:206
optional string name
Definition: topics.proto:50
const std::string STORING_STR
Definition: defines.hpp:249
const std::string FALSE_STR
Definition: defines.hpp:204
Definition: defines.hpp:44
Definition: defines.hpp:34
const int64_t NOT_IMPLEMENTED
Definition: defines.hpp:218
std::string IfwDataTypeToString(const DataType data_type)
Data type IFW numeric representation to IFW string representation.
Definition: defines.cpp:43
const std::string EXT_XML
Definition: defines.hpp:195
const std::string DATA_TYPE_TIME_DATE_STR
Definition: defines.hpp:75
const std::string DATA_TYPE_STRING_STR
Definition: defines.hpp:73
const std::string DATA_TYPE_UINT32_STR
Definition: defines.hpp:68
Definition: defines.hpp:40
const std::string DATA_TYPE_UNKNOWN_STR
Definition: defines.hpp:78