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 
35  void updateFromPropertyTree(const boost::property_tree::ptree& pt);
36  void writeToStream(std::ostream& out_stream) const;
37 };
38 
40  public:
41  AktualizrSecondaryConfig() = default;
42  AktualizrSecondaryConfig(const boost::program_options::variables_map& cmd);
43  explicit AktualizrSecondaryConfig(const boost::filesystem::path& filename);
44 
45  KeyManagerConfig keymanagerConfig() const;
46 
47  void postUpdateValues();
48  void writeToStream(std::ostream& sink) const;
49 
50  // from primary config
51  LoggerConfig logger;
52 
55 
56  // from primary config
57  P11Config p11;
58  PackageConfig pacman;
59  BootloaderConfig bootloader;
60  StorageConfig storage;
61  ImportConfig import;
62 
63  private:
64  void updateFromCommandLine(const boost::program_options::variables_map& cmd);
65  void updateFromPropertyTree(const boost::property_tree::ptree& pt) override;
66 };
67 std::ostream& operator<<(std::ostream& os, const AktualizrSecondaryConfig& cfg);
68 
69 #endif // AKTUALIZR_SECONDARY_CONFIG_H_
BaseConfig
Definition: config_utils.h:125
AktualizrSecondaryUptaneConfig
Definition: aktualizr_secondary_config.h:29
AktualizrSecondaryConfig
Definition: aktualizr_secondary_config.h:39
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