LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
urloperator.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #pragma once
10 
11 #include <QUrl>
12 #include <QUrlQuery>
13 #include "sllconfig.h"
14 
15 namespace LC
16 {
17 namespace Util
18 {
48  class UTIL_SLL_API UrlOperator
49  {
50  QUrl& Url_;
51 
52  QUrlQuery Query_;
53  public:
58  UrlOperator (QUrl& url);
59 
66  ~UrlOperator ();
67 
70  void Flush ();
71 
86  UrlOperator& operator() (const QString& key, const QString& value);
87 
99  UrlOperator& operator() (const QString& key, const QByteArray& value);
100 
114  UrlOperator& operator() (const QString& key, const char *value);
115 
127  UrlOperator& operator() (const QString& key, int value);
128 
129  template<typename Key, typename Value>
130  UrlOperator& operator() (bool condition, Key&& key, Value&& value)
131  {
132  if (condition)
133  (*this) (std::forward<Key> (key), std::forward<Value> (value));
134 
135  return *this;
136  }
137 
145  UrlOperator& operator-= (const QString& key);
146 
149  QUrl operator() ();
150  };
151 }
152 }
sllconfig.h
UTIL_SLL_API
#define UTIL_SLL_API
Definition: sllconfig.h:16
LC
Definition: constants.h:14