The Power in your Hands
Search Site:
About
Features
Documentation
Download
Community
Main
Classes
Namespaces
Modules
include
Pt
System
UriQuery.h
1
/*
2
* Copyright (C) 2022 Marc Duerner
3
*
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* As a special exception, you may use this file as part of a free
10
* software library without restriction. Specifically, if other files
11
* instantiate templates or use macros or inline functions from this
12
* file, or you compile this file and link it with other files to
13
* produce an executable, this file does not by itself cause the
14
* resulting executable to be covered by the GNU General Public
15
* License. This exception does not however invalidate any other
16
* reasons why the executable file might be covered by the GNU Library
17
* General Public License.
18
*
19
* This library is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22
* Lesser General Public License for more details.
23
*
24
* You should have received a copy of the GNU Lesser General Public
25
* License along with this library; if not, write to the Free Software
26
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
27
* MA 02110-1301 USA
28
*/
29
30
#ifndef Pt_System_UrlQuery_h
31
#define Pt_System_UrlQuery_h
32
33
#include <Pt/System/Api.h>
34
#include <Pt/String.h>
35
#include <map>
36
#include <string>
37
38
namespace
Pt {
39
40
namespace
System {
41
44
class
PT_SYSTEM_API UriQuery
45
{
46
public
:
47
UriQuery();
48
49
UriQuery(
const
std::string& s);
50
51
~UriQuery();
52
53
bool
isEmpty()
const
;
54
55
void
clear();
56
57
void
set(
const
std::string& s);
58
59
bool
hasField(
const
Pt::String
& key)
const
;
60
61
const
Pt::String
& field(
const
Pt::String
& key,
62
const
Pt::String
& def =
Pt::String
())
const
;
63
64
const
Pt::String
* findField(
const
Pt::String
& key)
const
;
65
66
void
setField(
const
Pt::String
& key,
const
Pt::String
& value);
67
68
void
removeField(
const
Pt::String
& key);
69
70
std::string toEncoded()
const
;
71
72
bool
equals(
const
UriQuery& query)
const
;
73
74
private
:
75
std::map<Pt::String, Pt::String> _fields;
76
};
77
78
79
inline
bool
operator ==(
const
UriQuery& a,
const
UriQuery& b)
80
{
81
return
a.equals(b);
82
}
83
84
85
inline
bool
operator !=(
const
UriQuery& a,
const
UriQuery& b)
86
{
87
return
! a.equals(b);
88
}
89
90
}
// namespace System
91
92
}
// namespace Pt
93
94
#endif // include guard
Pt::String
Unicode capable basic_string.
Definition:
String.h:42