2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
11 #include "addons/addoninfo/AddonExtensions.h"
61 * @brief virtual addon types
74 class CAddonInfoBuilder
;
75 class CAddonDatabaseSerializer
;
77 class CAddonType
: public CAddonExtensions
80 CAddonType(AddonType type
= AddonType::UNKNOWN
) : m_type(type
) {}
82 AddonType
Type() const { return m_type
; }
83 std::string
LibPath() const;
84 const std::string
& LibName() const { return m_libname
; }
86 bool ProvidesSubContent(const AddonType
& content
) const
88 return content
== AddonType::UNKNOWN
90 : m_type
== content
|| m_providedSubContent
.count(content
) > 0;
93 bool ProvidesSeveralSubContents() const
95 return m_providedSubContent
.size() > 1;
98 size_t ProvidedSubContents() const
100 return m_providedSubContent
.size();
104 * @brief Indicates whether a given type is a dependency type (e.g. addons which the main type is
107 * @param[in] type the provided type
108 * @return true if type is one of the dependency types
110 static bool IsDependencyType(AddonType type
);
113 friend class CAddonInfoBuilder
;
114 friend class CAddonInfoBuilderFromDB
;
115 friend class CAddonDatabaseSerializer
;
117 void SetProvides(const std::string
& content
);
121 std::string m_libname
;
122 std::set
<AddonType
> m_providedSubContent
;
125 } /* namespace ADDON */