NAWA  0.8
Web Application Framework for C++
GPC.h
Go to the documentation of this file.
1 
6 /*
7  * Copyright (C) 2019-2021 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 
27 #include <nawa/internal/macros.h>
28 #include <string>
29 #include <unordered_map>
30 #include <vector>
31 
32 namespace nawa {
33  class RequestInitContainer;
34 }
35 
36 namespace 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
GPC(RequestInitContainer const &requestInit, Source source)
Definition: GPC.cpp:39
std::vector< std::string > getVector(std::string const &gpcVar) const
Definition: GPC.cpp:62
std::string operator[](std::string const &gpcVar) const
Definition: GPC.cpp:54
std::unordered_multimap< std::string, std::string >::const_iterator end() const
Definition: GPC.cpp:83
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::unordered_multimap< std::string, std::string > const & getMultimap() const
Definition: GPC.cpp:75
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