blob: d307d7f4270850628c8312142f86d4551a973af7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/*
* Copyright (C) 2012-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 "URL.h"
#include "utils/UrlOptions.h"
#include <string>
class CVariant;
class CDbUrl : CUrlOptions
{
public:
CDbUrl();
~CDbUrl() override;
bool IsValid() const { return m_valid; }
void Reset();
std::string ToString() const;
bool FromString(const std::string &dbUrl);
const std::string& GetType() const { return m_type; }
void AppendPath(const std::string &subPath);
using CUrlOptions::HasOption;
using CUrlOptions::GetOptions;
using CUrlOptions::GetOptionsString;
void AddOption(const std::string &key, const char *value) override;
void AddOption(const std::string &key, const std::string &value) override;
void AddOption(const std::string &key, int value) override;
void AddOption(const std::string &key, float value) override;
void AddOption(const std::string &key, double value) override;
void AddOption(const std::string &key, bool value) override;
void AddOptions(const std::string &options) override;
void RemoveOption(const std::string &key) override;
protected:
virtual bool parse() = 0;
virtual bool validateOption(const std::string &key, const CVariant &value);
CURL m_url;
std::string m_type;
private:
void updateOptions();
bool m_valid;
};
|