summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/RssManager.h
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2020-10-19 00:52:24 +0200
committermanuel <manuel@mausz.at>2020-10-19 00:52:24 +0200
commitbe933ef2241d79558f91796cc5b3a161f72ebf9c (patch)
treefe3ab2f130e20c99001f2d7a81d610c78c96a3f4 /xbmc/utils/RssManager.h
parent5f8335c1e49ce108ef3481863833c98efa00411b (diff)
downloadkodi-pvr-build-be933ef2241d79558f91796cc5b3a161f72ebf9c.tar.gz
kodi-pvr-build-be933ef2241d79558f91796cc5b3a161f72ebf9c.tar.bz2
kodi-pvr-build-be933ef2241d79558f91796cc5b3a161f72ebf9c.zip
sync with upstream
Diffstat (limited to 'xbmc/utils/RssManager.h')
-rw-r--r--xbmc/utils/RssManager.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/xbmc/utils/RssManager.h b/xbmc/utils/RssManager.h
new file mode 100644
index 0000000..399cfa4
--- /dev/null
+++ b/xbmc/utils/RssManager.h
@@ -0,0 +1,68 @@
1/*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#pragma once
10
11#include "settings/lib/ISettingCallback.h"
12#include "settings/lib/ISettingsHandler.h"
13#include "threads/CriticalSection.h"
14
15#include <map>
16#include <string>
17#include <vector>
18
19class CRssReader;
20class IRssObserver;
21
22typedef struct
23{
24 bool rtl;
25 std::vector<int> interval;
26 std::vector<std::string> url;
27} RssSet;
28typedef std::map<int, RssSet> RssUrls;
29
30class CRssManager : public ISettingCallback, public ISettingsHandler
31{
32public:
33 static CRssManager& GetInstance();
34
35 void OnSettingsLoaded() override;
36 void OnSettingsUnloaded() override;
37
38 void OnSettingAction(std::shared_ptr<const CSetting> setting) override;
39
40 void Start();
41 void Stop();
42 bool Load();
43 bool Reload();
44 void Clear();
45 bool IsActive() const { return m_bActive; }
46
47 bool GetReader(int controlID, int windowID, IRssObserver* observer, CRssReader *&reader);
48 const RssUrls& GetUrls() const { return m_mapRssUrls; }
49
50protected:
51 CRssManager();
52 ~CRssManager() override;
53
54private:
55 CRssManager(const CRssManager&) = delete;
56 CRssManager& operator=(const CRssManager&) = delete;
57 struct READERCONTROL
58 {
59 int controlID;
60 int windowID;
61 CRssReader *reader;
62 };
63
64 std::vector<READERCONTROL> m_readers;
65 RssUrls m_mapRssUrls;
66 bool m_bActive;
67 CCriticalSection m_critical;
68};