Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
aktualizr_secondary_config.h
1 #ifndef AKTUALIZR_SECONDARY_CONFIG_H_
2 #define AKTUALIZR_SECONDARY_CONFIG_H_
3 
4 #include <boost/filesystem.hpp>
5 #include <boost/program_options.hpp>
6 #include <boost/property_tree/ini_parser.hpp>
7 
8 #include "bootloader/bootloader_config.h"
9 #include "crypto/keymanager_config.h"
10 #include "crypto/p11_config.h"
11 #include "logging/logging_config.h"
12 #include "package_manager/packagemanagerconfig.h"
13 #include "storage/storage_config.h"
14 #include "utilities/config_utils.h"
15 
16 // Try to keep the order of config options the same as in
17 // AktualizrSecondaryConfig::writeToStream() and
18 // AktualizrSecondaryConfig::updateFromPropertyTree().
19 
21  in_port_t port{9030};
22  std::string primary_ip;
23  in_port_t primary_port{9030};
24 
25  void updateFromPropertyTree(const boost::property_tree::ptree& pt);
26  void writeToStream(std::ostream& out_stream) const;
27 };
28 
30  std::string ecu_serial;
31  std::string ecu_hardware_id;
32  CryptoSource key_source{CryptoSource::kFile};
33  KeyType key_type{KeyType::kRSA2048};
34  bool force_install_completion{false};
35 
36  void updateFromPropertyTree(const boost::property_tree::ptree& pt);
37  void writeToStream(std::ostream& out_stream) const;
38 };
39 
41  public:
42  AktualizrSecondaryConfig() = default;
43  AktualizrSecondaryConfig(const boost::program_options::variables_map& cmd);
44  explicit AktualizrSecondaryConfig(const boost::filesystem::path& filename);
45 
46  KeyManagerConfig keymanagerConfig() const;
47 
48  void postUpdateValues();
49  void writeToStream(std::ostream& sink) const;
50 
51  // from Primary config
52  LoggerConfig logger;
53 
56 
57  // from Primary config
58  P11Config p11;
59  PackageConfig pacman;
60  BootloaderConfig bootloader;
61  StorageConfig storage;
62  ImportConfig import;
63 
64  private:
65  void updateFromCommandLine(const boost::program_options::variables_map& cmd);
66  void updateFromPropertyTree(const boost::property_tree::ptree& pt) override;
67 };
68 std::ostream& operator<<(std::ostream& os, const AktualizrSecondaryConfig& cfg);
69 
70 #endif // AKTUALIZR_SECONDARY_CONFIG_H_
BaseConfig
Definition: config_utils.h:125
AktualizrSecondaryUptaneConfig
Definition: aktualizr_secondary_config.h:29
AktualizrSecondaryConfig
Definition: aktualizr_secondary_config.h:40
AktualizrSecondaryNetConfig
Definition: aktualizr_secondary_config.h:20
StorageConfig
Definition: storage_config.h:15
P11Config
Definition: p11_config.h:15
LoggerConfig
Definition: logging_config.h:7
KeyManagerConfig
Definition: keymanager_config.h:9
PackageConfig
Definition: packagemanagerconfig.h:24
BootloaderConfig
Definition: bootloader_config.h:11
ImportConfig
Definition: storage_config.h:34