1 #ifndef PACKAGEMANAGERINTERFACE_H_ 2 #define PACKAGEMANAGERINTERFACE_H_ 7 #include "libaktualizr/config.h" 9 #include "bootloader/bootloader.h" 10 #include "crypto/keymanager.h" 11 #include "http/httpinterface.h" 12 #include "storage/invstorage.h" 13 #include "uptane/fetcher.h" 14 #include "utilities/apiqueue.h" 16 using FetcherProgressCb = std::function<void(const Uptane::Target&, const std::string&, unsigned int)>;
21 enum class TargetStatus {
39 const std::shared_ptr<INvStorage>& storage,
const std::shared_ptr<HttpInterface>& http)
40 : config(pconfig), storage_(storage), http_(http) {
44 virtual std::string name()
const = 0;
45 virtual Json::Value getInstalledPackages()
const = 0;
48 virtual void completeInstall()
const {
throw std::runtime_error(
"Unimplemented"); };
50 virtual void updateNotify(){};
53 virtual TargetStatus verifyTarget(
const Uptane::Target& target)
const;
54 virtual bool checkAvailableDiskSpace(
const uint64_t required_bytes)
const;
55 virtual boost::optional<std::pair<uintmax_t, std::string>> checkTargetFile(
const Uptane::Target& target)
const;
56 virtual std::ofstream createTargetFile(
const Uptane::Target& target);
57 virtual std::ofstream appendTargetFile(
const Uptane::Target& target);
58 virtual std::ifstream openTargetFile(
const Uptane::Target& target)
const;
60 virtual std::vector<Uptane::Target> getTargetFiles();
64 std::shared_ptr<INvStorage> storage_;
65 std::shared_ptr<HttpInterface> http_;
67 #endif // PACKAGEMANAGERINTERFACE_H_ Provides a thread-safe way to pause and terminate task execution.