11 #include "XBDateTime.h" 12 #include "addons/AddonVersion.h" 13 #include "dbwrappers/Database.h" 26 enum class AddonDisabledReason;
27 enum class AddonUpdateRule;
29 class CAddonExtensions;
30 class CAddonInfoBuilderFromDB;
33 using AddonInfoPtr = std::shared_ptr<CAddonInfo>;
36 using AddonPtr = std::shared_ptr<IAddon>;
37 using VECADDONS = std::vector<AddonPtr>;
53 static std::string SerializeMetadata(
const CAddonInfo& addon);
69 bool GetAddon(
const std::string& addonID,
71 const std::string& repoId,
72 ADDON::AddonPtr& addon);
75 bool GetDisabled(std::map<std::string, ADDON::AddonDisabledReason>& addons);
78 bool FindByAddonId(
const std::string& addonId, ADDON::VECADDONS& addons)
const;
80 bool UpdateRepositoryContent(
const std::string& repositoryId,
82 const std::string& checksum,
83 const std::vector<AddonInfoPtr>& addons);
85 int GetRepoChecksum(
const std::string&
id, std::string& checksum);
92 bool GetRepositoryContent(
const std::string&
id, ADDON::VECADDONS& addons)
const;
95 bool GetRepositoryContent(ADDON::VECADDONS& addons)
const;
111 : lastCheckedAt{lastCheckedAt},
112 lastCheckedVersion{lastCheckedVersion},
113 nextCheckAt{nextCheckAt}
124 int SetRepoUpdateData(
const std::string&
id,
const RepoUpdateData& updateData);
133 bool Search(
const std::string& search, ADDON::VECADDONS& items);
144 bool DisableAddon(
const std::string& addonID, ADDON::AddonDisabledReason disabledReason);
152 bool EnableAddon(
const std::string& addonID);
160 bool AddUpdateRuleForAddon(
const std::string& addonID, ADDON::AddonUpdateRule updateRule);
167 bool RemoveAllUpdateRulesForAddon(
const std::string& addonID);
177 bool RemoveUpdateRuleForAddon(
const std::string& addonID, AddonUpdateRule updateRule);
184 bool GetAddonUpdateRules(std::map<std::string, std::vector<AddonUpdateRule>>& rulesMap)
const;
193 bool AddPackage(
const std::string& addonID,
194 const std::string& packageFileName,
195 const std::string& hash);
203 bool GetPackageHash(
const std::string& addonID,
204 const std::string& packageFileName,
211 bool RemovePackage(
const std::string& packageFileName);
214 void OnPostUnInstall(
const std::string& addonId);
216 void SyncInstalled(
const std::set<std::string>& ids,
217 const std::set<std::string>& system,
218 const std::set<std::string>& optional);
220 bool SetLastUpdated(
const std::string& addonId,
const CDateTime& dateTime);
221 bool SetOrigin(
const std::string& addonId,
const std::string& origin);
222 bool SetLastUsed(
const std::string& addonId,
const CDateTime& dateTime);
224 void GetInstallData(
const ADDON::AddonInfoPtr& addon);
231 bool AddInstalledAddon(
const std::shared_ptr<CAddonInfo>& addon,
const std::string& origin);
234 void CreateTables()
override;
235 void CreateAnalytics()
override;
236 void UpdateTables(
int version)
override;
237 int GetMinSchemaVersion()
const override;
238 int GetSchemaVersion()
const override;
239 const char *GetBaseDBName()
const override {
return "Addons"; }
241 bool GetAddon(
int id, ADDON::AddonPtr& addon);
242 void DeleteRepository(
const std::string&
id);
243 void DeleteRepositoryContents(
const std::string&
id);
244 int GetRepositoryId(
const std::string& addonId);
Definition: AddonExtensions.h:54
Definition: AddonDatabase.h:61
Definition: AddonVersion.h:27
Definition: AddonInfoBuilder.h:70
Addon content serializer/deserializer.
Definition: AddonDatabase.h:48
Definition: AddonInfo.h:141
CDateTime lastCheckedAt
last time the repo was checked, or invalid CDateTime if never checked
Definition: AddonDatabase.h:100
CDateTime nextCheckAt
next time the repo should be checked, or invalid CDateTime if unknown
Definition: AddonDatabase.h:104
Definition: Database.h:26
DateTime class, which uses FileTime as it's base.
Definition: XBDateTime.h:63
Definition: AddonDatabase.h:97