Motorcortex Core  version: 2.7.6
ps_filexml.h
1 /*
2  * Developer : Alexey Zakharov (alexey.zakharov@vectioneer.com)
3  * All rights reserved. Copyright (c) 2021 VECTIONEER.
4  */
5 
6 #ifndef MOTORCORTEX_CORE_PS_FILEXML_H
7 #define MOTORCORTEX_CORE_PS_FILEXML_H
8 
9 #include "ps_filebase.h"
10 #include <iomanip>
11 
12 namespace tinyxml2 {
13 class XMLElement;
14 }
15 
16 namespace mcx::parameter_server {
17 
19 public:
21 
22  FileSerializationXml(ExceptionListType exception_list_type, ExceptionList exception_list);
23 
25 
26  FileSerializationXml& operator=(const FileSerializationXml& other) = delete;
27 
28  ~FileSerializationXml() override;
29 
30  std::future<bool> save(const std::string& file_name, Parameter* root, size_t max_number_of_trials, size_t delay_us,
31  bool force_update) override;
32 
33  std::future<bool> load(const std::string& file_name, Parameter* root, cmd_line::SystemMode system_mode,
34  bool is_relative) override;
35 
36  bool busy();
37 
38 private:
39  static cmd_line::SystemMode getAttributeSystemMode(tinyxml2::XMLElement* element);
40  static bool isForce(tinyxml2::XMLElement* element);
41 
42  container::ThreadPool thread_pool_{1};
43  const ExceptionPair exception_pair_;
44 };
45 
46 } // namespace mcx::parameter_server
47 
48 #endif // MOTORCORTEX_CORE_PS_FILEXML_H
mcx::parameter_server::Parameter
Definition: ps_parameter.h:45
mcx::container::ThreadPool
Definition: ct_threadpool.h:35
mcx::parameter_server::FileSerializationXml
Definition: ps_filexml.h:18
mcx::parameter_server::FileSerialization
Definition: ps_filebase.h:17