]> git.ipfire.org Git - thirdparty/squid.git/blob - src/mgr/QueryParams.h
Merged from parent (trunk 11270, circa 3.2.0.5+)
[thirdparty/squid.git] / src / mgr / QueryParams.h
1 /*
2 * $Id$
3 *
4 * DEBUG: section 16 Cache Manager API
5 *
6 */
7
8 #ifndef SQUID_MGR_QUERY_PARAMS_H
9 #define SQUID_MGR_QUERY_PARAMS_H
10
11 #include "ipc/forward.h"
12 #include "mgr/QueryParam.h"
13 #include "SquidString.h"
14 #include <vector>
15 #include <utility>
16
17
18 namespace Mgr
19 {
20
21 class QueryParams
22 {
23 public:
24 typedef std::pair<String, QueryParam::Pointer> Param;
25 typedef std::vector<Param> Params;
26
27 public:
28 /// returns query parameter by name
29 QueryParam::Pointer get(const String& name) const;
30 void pack(Ipc::TypedMsgHdr& msg) const; ///< store params into msg
31 void unpack(const Ipc::TypedMsgHdr& msg); ///< load params from msg
32 /// parses the query string parameters
33 static bool Parse(const String& aParamsStr, QueryParams& aParams);
34
35 private:
36 /// find query parameter by name
37 Params::const_iterator find(const String& name) const;
38 /// creates a parameter of the specified type
39 static QueryParam::Pointer CreateParam(QueryParam::Type aType);
40 /// parses string like "param=value"; returns true if success
41 static bool ParseParam(const String& paramStr, Param& param);
42
43 private:
44 Params params;
45 };
46
47 } // namespace Mgr
48
49 #endif /* SQUID_MGR_QUERY_PARAMS_H */