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_