Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
ipuptanesecondary.h
1 #ifndef UPTANE_IPUPTANESECONDARY_H_
2 #define UPTANE_IPUPTANESECONDARY_H_
3 
4 #include <chrono>
5 #include <future>
6 
7 #include "uptane/secondaryinterface.h"
8 
9 namespace Uptane {
10 
12  public:
13  static SecondaryInterface::Ptr connectAndCreate(const std::string& address, unsigned short port);
14 
15  static SecondaryInterface::Ptr create(const std::string& address, unsigned short port, int con_fd);
16 
17  explicit IpUptaneSecondary(const std::string& address, unsigned short port, EcuSerial serial,
18  HardwareIdentifier hw_id, PublicKey pub_key);
19 
20  // It looks more natural to return const EcuSerial& and const Uptane::HardwareIdentifier&
21  EcuSerial getSerial() const override { return serial_; };
22  Uptane::HardwareIdentifier getHwId() const override { return hw_id_; }
23  PublicKey getPublicKey() const override { return pub_key_; }
24 
25  bool putMetadata(const RawMetaPack& meta_pack) override;
26  int32_t getRootVersion(bool /* director */) const override { return 0; }
27  bool putRoot(const std::string& /* root */, bool /* director */) override { return true; }
28  bool sendFirmware(const std::string& data) override;
29  data::ResultCode::Numeric install(const std::string& target_name) override;
30  Manifest getManifest() const override;
31 
32  private:
33  const std::pair<std::string, uint16_t>& getAddr() const { return addr_; }
34 
35  private:
36  std::mutex install_mutex;
37 
38  std::pair<std::string, uint16_t> addr_;
39  const EcuSerial serial_;
40  const HardwareIdentifier hw_id_;
41  const PublicKey pub_key_;
42 };
43 
44 } // namespace Uptane
45 
46 #endif // UPTANE_IPUPTANESECONDARY_H_
data
General data structures.
Definition: types.cc:44
Uptane::HardwareIdentifier
Definition: tuf.h:143
Uptane::RawMetaPack
Definition: tuf.h:532
Uptane::EcuSerial
Definition: tuf.h:174
PublicKey
Definition: crypto.h:26
Uptane::IpUptaneSecondary
Definition: ipuptanesecondary.h:11
data::ResultCode::Numeric
Numeric
Definition: types.h:125
Uptane
Base data types that are used in The Update Framework (TUF), part of UPTANE.
Definition: secondary_tcp_server.h:8
Uptane::SecondaryInterface
Definition: secondaryinterface.h:12
Uptane::Manifest
Definition: manifest.h:13