NAWA 0.9
Web Application Framework for C++
GPC.h
Go to the documentation of this file.
1
6/*
7 * Copyright (C) 2019-2022 Tobias Flaig.
8 *
9 * This file is part of nawa.
10 *
11 * nawa is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License,
13 * version 3, as published by the Free Software Foundation.
14 *
15 * nawa is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with nawa. If not, see <https://www.gnu.org/licenses/>.
22 */
23
24#ifndef NAWA_GPC_H
25#define NAWA_GPC_H
26
28#include <string>
29#include <unordered_map>
30#include <vector>
31
32namespace nawa {
33 class RequestInitContainer;
34}
35
36namespace nawa::request {
40 class GPC {
42
43 public:
44 enum class Source {
45 GET,
46 POST,
47 COOKIE
48 };
49
51
52 GPC(RequestInitContainer const& requestInit, Source source);
53
63 std::string operator[](std::string const& gpcVar) const;
64
70 [[nodiscard]] std::vector<std::string> getVector(std::string const& gpcVar) const;
71
77 [[nodiscard]] size_t count(std::string const& gpcVar) const;
78
83 [[nodiscard]] std::unordered_multimap<std::string, std::string> const& getMultimap() const;
84
89 [[nodiscard]] std::unordered_multimap<std::string, std::string>::const_iterator begin() const;
90
95 [[nodiscard]] std::unordered_multimap<std::string, std::string>::const_iterator end() const;
96
101 explicit virtual operator bool() const;
102 };
103}// namespace nawa::request
104
105#endif//NAWA_GPC_H
std::string operator[](std::string const &gpcVar) const
Definition: GPC.cpp:54
GPC(RequestInitContainer const &requestInit, Source source)
Definition: GPC.cpp:39
std::unordered_multimap< std::string, std::string >::const_iterator end() const
Definition: GPC.cpp:83
std::unordered_multimap< std::string, std::string > const & getMultimap() const
Definition: GPC.cpp:75
size_t count(std::string const &gpcVar) const
Definition: GPC.cpp:71
std::unordered_multimap< std::string, std::string >::const_iterator begin() const
Definition: GPC.cpp:79
std::vector< std::string > getVector(std::string const &gpcVar) const
Definition: GPC.cpp:62
Macros for frequently used patterns.
#define NAWA_DEFAULT_DESTRUCTOR_DEF(Class)
Definition: macros.h:34
#define NAWA_PRIVATE_DATA()
Definition: macros.h:30
Definition: AppInit.h:31