1 #ifndef PACKAGEMANAGERINTERFACE_H_ 2 #define PACKAGEMANAGERINTERFACE_H_ 7 #include "bootloader/bootloader.h" 8 #include "crypto/keymanager.h" 9 #include "http/httpinterface.h" 10 #include "packagemanagerconfig.h" 11 #include "storage/invstorage.h" 12 #include "uptane/fetcher.h" 13 #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;
57 std::shared_ptr<INvStorage> storage_;
58 std::shared_ptr<HttpInterface> http_;
60 #endif // PACKAGEMANAGERINTERFACE_H_
Provides a thread-safe way to pause and terminate task execution.