summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/UrlOptions.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/utils/UrlOptions.h')
-rw-r--r--xbmc/utils/UrlOptions.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/xbmc/utils/UrlOptions.h b/xbmc/utils/UrlOptions.h
new file mode 100644
index 0000000..1fa7ac6
--- /dev/null
+++ b/xbmc/utils/UrlOptions.h
@@ -0,0 +1,46 @@
1/*
2 * Copyright (C) 2012-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 "utils/Variant.h"
12
13#include <map>
14#include <string>
15
16class CUrlOptions
17{
18public:
19 typedef std::map<std::string, CVariant> UrlOptions;
20
21 CUrlOptions();
22 CUrlOptions(const std::string &options, const char *strLead = "");
23 virtual ~CUrlOptions();
24
25 void Clear() { m_options.clear(); m_strLead.clear(); }
26
27 const UrlOptions& GetOptions() const { return m_options; }
28 std::string GetOptionsString(bool withLeadingSeparator = false) const;
29
30 virtual void AddOption(const std::string &key, const char *value);
31 virtual void AddOption(const std::string &key, const std::string &value);
32 virtual void AddOption(const std::string &key, int value);
33 virtual void AddOption(const std::string &key, float value);
34 virtual void AddOption(const std::string &key, double value);
35 virtual void AddOption(const std::string &key, bool value);
36 virtual void AddOptions(const std::string &options);
37 virtual void AddOptions(const CUrlOptions &options);
38 virtual void RemoveOption(const std::string &key);
39
40 bool HasOption(const std::string &key) const;
41 bool GetOption(const std::string &key, CVariant &value) const;
42
43protected:
44 UrlOptions m_options;
45 std::string m_strLead;
46};