TARAXA
config_updater.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <json/value.h>
4 
5 #include <functional>
6 #include <vector>
7 
8 namespace taraxa::cli {
9 
11  public:
12  ConfigUpdater(int chain_id);
13 
14  void UpdateConfig(Json::Value& old_conf);
15 
16  private:
17  struct ConfigChange {
18  using ApplyFunction = std::function<void(Json::Value& old_conf, const Json::Value& new_conf)>;
19 
20  ConfigChange() = default;
21  ConfigChange(ApplyFunction&& apply_function) : apply(std::move(apply_function)) {}
23  };
24 
25  Json::Value new_conf_;
26  std::vector<ConfigChange> config_changes_;
27 };
28 
29 } // namespace taraxa::cli
Definition: config_updater.hpp:10
ConfigUpdater(int chain_id)
Definition: config_updater.cpp:18
Json::Value new_conf_
Definition: config_updater.hpp:25
std::vector< ConfigChange > config_changes_
Definition: config_updater.hpp:26
void UpdateConfig(Json::Value &old_conf)
Definition: config_updater.cpp:24
std::hash for asio::adress
Definition: FixedHash.h:483
Definition: config.hpp:8
Definition: config_updater.hpp:17
ConfigChange(ApplyFunction &&apply_function)
Definition: config_updater.hpp:21
ApplyFunction apply
Definition: config_updater.hpp:22
std::function< void(Json::Value &old_conf, const Json::Value &new_conf)> ApplyFunction
Definition: config_updater.hpp:18