diff options
Diffstat (limited to 'xbmc/addons/BinaryAddonCache.h')
-rw-r--r-- | xbmc/addons/BinaryAddonCache.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/xbmc/addons/BinaryAddonCache.h b/xbmc/addons/BinaryAddonCache.h new file mode 100644 index 0000000..5536c9f --- /dev/null +++ b/xbmc/addons/BinaryAddonCache.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2016-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#include "threads/CriticalSection.h" + +#include <map> +#include <memory> +#include <vector> + +namespace ADDON +{ + +enum class AddonType; + +class IAddon; +using AddonPtr = std::shared_ptr<IAddon>; +using VECADDONS = std::vector<AddonPtr>; + +struct AddonEvent; + +class CBinaryAddonCache +{ +public: + virtual ~CBinaryAddonCache(); + void Init(); + void Deinit(); + void GetAddons(VECADDONS& addons, AddonType type); + void GetDisabledAddons(VECADDONS& addons, AddonType type); + void GetInstalledAddons(VECADDONS& addons, AddonType type); + AddonPtr GetAddonInstance(const std::string& strId, AddonType type); + +protected: + void Update(); + void OnEvent(const AddonEvent& event); + + CCriticalSection m_critSection; + std::multimap<AddonType, VECADDONS> m_addons; +}; + +} // namespace ADDON |