kodi
UrlOptions.h
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 
17 {
18 public:
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 
43 protected:
44  UrlOptions m_options;
45  std::string m_strLead;
46 };
Definition: Variant.h:31
Definition: UrlOptions.h:16