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  static SecondaryInterface::Ptr create(const std::string& address, unsigned short port, int con_fd);
15 
16  static SecondaryInterface::Ptr connectAndCheck(const std::string& address, unsigned short port, EcuSerial serial,
17  HardwareIdentifier hw_id, PublicKey pub_key);
18 
19  explicit IpUptaneSecondary(const std::string& address, unsigned short port, EcuSerial serial,
20  HardwareIdentifier hw_id, PublicKey pub_key);
21 
22  std::string Type() const override { return "IP"; }
23  EcuSerial getSerial() const override { return serial_; };
24  Uptane::HardwareIdentifier getHwId() const override { return hw_id_; }
25  PublicKey getPublicKey() const override { return pub_key_; }
26 
27  bool putMetadata(const RawMetaPack& meta_pack) override;
28  int32_t getRootVersion(bool /* director */) const override { return 0; }
29  bool putRoot(const std::string& /* root */, bool /* director */) override { return true; }
30  bool sendFirmware(const std::string& data) override;
31  data::ResultCode::Numeric install(const std::string& target_name) override;
32  Manifest getManifest() const override;
33  bool ping() const override;
34 
35  private:
36  const std::pair<std::string, uint16_t>& getAddr() const { return addr_; }
37 
38  private:
39  std::mutex install_mutex;
40 
41  std::pair<std::string, uint16_t> addr_;
42  const EcuSerial serial_;
43  const HardwareIdentifier hw_id_;
44  const PublicKey pub_key_;
45 };
46 
47 } // namespace Uptane
48 
49 #endif // UPTANE_IPUPTANESECONDARY_H_
data
General data structures.
Definition: types.cc:54
Uptane::HardwareIdentifier
Definition: tuf.h:143
Uptane::RawMetaPack
Definition: tuf.h:534
Uptane::EcuSerial
Definition: tuf.h:174
PublicKey
Definition: crypto.h:26
Uptane::IpUptaneSecondary
Definition: ipuptanesecondary.h:11
data::ResultCode::Numeric
Numeric
Definition: types.h:128
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