Motorcortex Core  version: 2.7.6
ps_filebase.h
1 /*
2  * Developer : Alexey Zakharov (alexey.zakharov@vectioneer.com)
3  * All rights reserved. Copyright (c) 2016 VECTIONEER.
4  */
5 
6 #ifndef PS_FILEBASE_H
7 #define PS_FILEBASE_H
8 
9 #include "cmdline_systemmode.h"
10 #include "ct_threadpool.h"
11 #include "ps_parameter.h"
12 #include <atomic>
13 #include <string>
14 
15 namespace mcx::parameter_server {
16 
18 public:
19  enum class ExceptionListType { NO_EXCEPTIONS = 0, REGARD_ALL_EXCEPT = 1, IGNORE_ALL_EXCEPT = 2 };
20  using ExceptionList = const std::vector<Parameter*>&;
21  using ExceptionPair = std::pair<ExceptionListType, ExceptionList>;
22 
23  virtual std::future<bool> save(const std::string& file_name, Parameter* root, size_t max_number_of_trials,
24  size_t delay_us, bool force_update) = 0;
25 
26  virtual std::future<bool> load(const std::string& file_name, Parameter* root, cmd_line::SystemMode system_mode,
27  bool is_relative) = 0;
28 
29  virtual ~FileSerialization() = default;
30 
31  static size_t decodeValues(Parameter* param, const char* str_cursor, size_t str_len, char* decode_buf,
32  size_t decode_buf_size);
33 };
34 
35 bool load(const std::string& file_name, Parameter* root, bool is_relative = false);
36 
37 bool load(const std::string& file_name, Parameter* root, cmd_line::SystemMode system_mode, bool is_relative = false);
38 
39 bool save(const std::string& file_name, Parameter* root, size_t max_number_of_trials = 2, size_t delay_us = 2000,
40  bool force_update = true);
41 
42 } // namespace mcx::parameter_server
43 
44 #endif /* PS_FILEBASE_H */
mcx::parameter_server::Parameter
Definition: ps_parameter.h:45
mcx::parameter_server::FileSerialization
Definition: ps_filebase.h:17