11 #include "addons/IAddon.h" 16 #include <unordered_map> 24 enum class AddonLifecycleState;
27 class CAddonExtensions;
30 struct DependencyInfo;
31 struct RepositoryDirInfo;
34 using AddonInfoPtr = std::shared_ptr<CAddonInfo>;
39 static AddonInfoPtr Generate(
const std::string&
id, AddonType type);
40 static AddonInfoPtr Generate(
const std::string& addonPath,
bool platformCheck =
true);
41 static AddonInfoPtr Generate(
const TiXmlElement* baseElement,
43 bool platformCheck =
true);
54 static bool ParseXML(
const AddonInfoPtr& addon,
55 const TiXmlElement* element,
56 const std::string& addonPath);
57 static bool ParseXML(
const AddonInfoPtr& addon,
58 const TiXmlElement* element,
59 const std::string& addonPath,
61 static bool ParseXMLTypes(
CAddonType& addonType,
62 const AddonInfoPtr& info,
63 const TiXmlElement* child);
64 static bool ParseXMLExtension(
CAddonExtensions& addonExt,
const TiXmlElement* element);
65 static bool GetTextList(
const TiXmlElement* element,
const std::string& tag, std::unordered_map<std::string, std::string>& translatedValues);
66 static const char* GetPlatformLibraryName(
const TiXmlElement* element);
67 static bool PlatformSupportsAddon(
const AddonInfoPtr& addon);
75 void SetId(std::string
id);
76 void SetName(std::string name);
77 void SetLicense(std::string license);
78 void SetSummary(std::string summary);
79 void SetDescription(std::string description);
80 void SetDisclaimer(std::string disclaimer);
81 void SetAuthor(std::string author);
82 void SetSource(std::string source);
83 void SetWebsite(std::string website);
84 void SetForum(std::string forum);
85 void SetEMail(std::string email);
86 void SetIcon(std::string icon);
87 void SetArt(
const std::string& type, std::string value);
88 void SetArt(std::map<std::string, std::string> art);
89 void SetScreenshots(std::vector<std::string> screenshots);
90 void SetChangelog(std::string changelog);
91 void SetLifecycleState(AddonLifecycleState state, std::string description);
92 void SetPath(std::string path);
93 void SetLibName(std::string libname);
95 void SetDependencies(std::vector<DependencyInfo> dependencies);
96 void SetExtrainfo(InfoMap extrainfo);
97 void SetInstallDate(
const CDateTime& installDate);
98 void SetLastUpdated(
const CDateTime& lastUpdated);
99 void SetLastUsed(
const CDateTime& lastUsed);
100 void SetOrigin(std::string origin);
101 void SetPackageSize(uint64_t size);
104 const AddonInfoPtr&
get() {
return m_addonInfo; }
107 AddonInfoPtr m_addonInfo;
Definition: AddonType.h:77
Definition: AddonExtensions.h:54
Definition: AddonVersion.h:27
Definition: AddonInfoBuilder.h:70
DateTime class, which uses FileTime as it's base.
Definition: XBDateTime.h:63
static void SetInstallData(const AddonInfoPtr &addon, const CDateTime &installDate, const CDateTime &lastUpdated, const CDateTime &lastUsed, const std::string &origin)
Parts used from CAddonDatabase.
Definition: AddonInfoBuilder.cpp:246
Definition: Repository.h:23
Definition: AddonInfoBuilder.h:36