Motorcortex Core  version: 2.7.6
ps_persistence.h
1 /*
2  * Developer : Alexey Zakharov (alexey.zakharov@vectioneer.com)
3  * All rights reserved. Copyright (c) 2018 VECTIONEER.
4  */
5 
6 #ifndef MOTORCORTEX_CORE_PS_PERSISTENCE_H
7 #define MOTORCORTEX_CORE_PS_PERSISTENCE_H
8 
9 #include "ct_module.h"
10 
11 #include <vector>
12 #include <string>
13 
14 namespace mcx {
15 
16 namespace parameter_server {
17 
19 public:
20 
21  struct PersistenceData {
22  parameter_server::Parameter* param_ptr{};
23  void* storage_ptr{};
24  size_t param_size{};
25  struct timespec* time_ptr{};
26  };
27 
28  Persistence(const std::string& path);
29 
30  ~Persistence() override;
31 
32 protected:
33 
34  void create_(const char* name, parameter_server::Parameter* parameter_server, uint64_t dt_micro_s) override;
35 
36  bool initPhase1_() override;
37 
38  bool initPhase2_() override;
39 
40  bool startOp_() override;
41 
42  bool stopOp_() override;
43 
44  bool iterateOp_(const container::TaskTime& system_time, container::UserTime* user_time) override;
45 
46 private:
47 
48  std::vector<PersistenceData> param_list_;
49  uint8_t* persistence_buffer_{};
50  std::string path_;
51  size_t total_size_{};
52 
53 };
54 
55 } // namespace parameter_server
56 
57 } // namespace mcx
58 
59 #endif //MOTORCORTEX_CORE_PS_PERSISTENCE_H
mcx::parameter_server::Persistence::PersistenceData
Definition: ps_persistence.h:21
mcx::parameter_server::Persistence::iterateOp_
bool iterateOp_(const container::TaskTime &system_time, container::UserTime *user_time) override
User-defined callback which is called during Operation mode.
Definition: ps_persistence.cpp:137
mcx::parameter_server::Parameter
Definition: ps_parameter.h:45
mcx::parameter_server::Persistence::create_
void create_(const char *name, parameter_server::Parameter *parameter_server, uint64_t dt_micro_s) override
User-defined callback, which is executed during 'Create' phase.
Definition: ps_persistence.cpp:65
mcx::container::TaskTime
Internal time source.
Definition: ct_time.h:25
mcx::parameter_server::Persistence::stopOp_
bool stopOp_() override
User-defined callback before to stop Operation mode.
Definition: ps_persistence.cpp:129
mcx::parameter_server::Persistence
Definition: ps_persistence.h:18
mcx::container::UserTime
External time source.
Definition: ct_time.h:40
mcx::container::Module
A building block of the Motorcortex components.
Definition: ct_module.h:64
mcx::parameter_server::Persistence::initPhase2_
bool initPhase2_() override
User-defined callback after the parameter tree is ready.
Definition: ps_persistence.cpp:73
mcx::parameter_server::Persistence::initPhase1_
bool initPhase1_() override
User-defined callback to register parameters in the tree.
Definition: ps_persistence.cpp:69
mcx::parameter_server::Persistence::startOp_
bool startOp_() override
User-defined callback before entering Operation mode.
Definition: ps_persistence.cpp:121