RestLink 2.2.0
Powerfull Rest Client for Qt
Loading...
Searching...
No Matches
requestinterface.h
1#ifndef REQUESTINTERFACE_H
2#define REQUESTINTERFACE_H
3
4#include <RestLink/global.h>
5
6#include <QtCore/qlist.h>
7
8namespace RestLink {
9
10class PathParameter;
11class QueryParameter;
12class Header;
13
14class RESTLINK_EXPORT RequestInterface
15{
16public:
17 bool hasPathParameter(const QString &name) const;
18 PathParameter pathParameter(const QString &name) const;
19 QVariant pathParameterValue(const QString &name) const;
20 QStringList pathParameterNames() const;
21 void setPathParameter(const QString &name, const QVariant &value);
22 void setPathParameter(const PathParameter &parameter);
23 void unsetPathParameter(const QString &name);
24
25 QList<PathParameter> pathParameters() const;
26 void setPathParameters(const QList<PathParameter> &parameters);
27
28 bool hasQueryParameter(const QString &name) const;
29 QueryParameter queryParameter(const QString &name) const;
30 QList<QVariant> queryParameterValues(const QString &name) const;
31 QStringList queryParameterNames() const;
32 void addQueryParameter(const QString &name, const QVariant &value);
33 void addQueryParameter(const QueryParameter &param);
34 void removeQueryParameter(const QString &name);
35 void removeQueryParameter(const QString &name, const QVariant &value);
36
37 QList<QueryParameter> queryParameters() const;
38 void setQueryParameters(const QList<QueryParameter> &parameters);
39
40 bool hasHeader(const QString &name) const;
41 Header header(const QString &name) const;
42 QList<QVariant> headerValues(const QString &name) const;
43 QStringList headerNames() const;
44 void setHeader(const QString &name, const QVariant &value);
45 void setHeader(const Header &header);
46 void unsetHeader(const QString &name);
47
48 QList<Header> headers() const;
49 void setHeaders(const QList<Header> &headers);
50
51protected:
52 virtual const QList<PathParameter> *constPathParameters() const = 0;
53 virtual QList<PathParameter> *mutablePathParameters() = 0;
54
55 virtual const QList<QueryParameter> *constQueryParameters() const = 0;
56 virtual QList<QueryParameter> *mutableQueryParameters() = 0;
57
58 virtual const QList<Header> *constHeaders() const = 0;
59 virtual QList<Header> *mutableHeaders() = 0;
60
61private:
62 QList<PathParameter>::const_iterator findPathParameter(const QString &name) const;
63 QList<PathParameter>::iterator findPathParameter(const QString &name);
64
65 QList<QueryParameter>::const_iterator findQueryParameter(const QString &name) const;
66 QList<QueryParameter>::iterator findQueryParameter(const QString &name);
67
68 QList<Header>::const_iterator findHeader(const QString &name) const;
69 QList<Header>::iterator findHeader(const QString &name);
70};
71
72}
73
74#endif // REQUESTINTERFACE_H