diff options
author | Mikhail Svetkin <mikhail.svetkin@gmail.com> | 2020-04-09 20:52:01 +0200 |
---|---|---|
committer | Mikhail Svetkin <mikhail.svetkin@gmail.com> | 2020-04-19 00:01:36 +0200 |
commit | 9719bf64bb471b8da10e8a5aa419308e8d3b1238 (patch) | |
tree | abbde7b8c4937d94cca647a4dbc76f74b0e135c7 /src | |
parent | a65cc1fa6e8b234ad57838a573ef17f29859bf6d (diff) |
Add dependencies file for Coin
Coin by default uses dev branch of qtbase.
Add 5.12 qtbase into the dependencies file
Change-Id: I849ea65e36c74f153dbd5531c01e3a3b00ab4fef
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/httpserver/qhttpserver.h | 2 | ||||
-rw-r--r-- | src/httpserver/qhttpserverresponse.h | 4 | ||||
-rw-r--r-- | src/httpserver/qhttpserverrouter.h | 32 | ||||
-rw-r--r-- | src/httpserver/qhttpserverrouterrule.h | 2 | ||||
-rw-r--r-- | src/httpserver/qhttpserverrouterviewtraits.h | 12 |
5 files changed, 37 insertions, 15 deletions
diff --git a/src/httpserver/qhttpserver.h b/src/httpserver/qhttpserver.h index 80bad2c..6d754b1 100644 --- a/src/httpserver/qhttpserver.h +++ b/src/httpserver/qhttpserver.h @@ -89,7 +89,7 @@ private: bool routeImpl(Args &&...args, ViewHandler &&viewHandler) { auto routerHandler = [this, viewHandler] ( - QRegularExpressionMatch &match, + const QRegularExpressionMatch &match, const QHttpServerRequest &request, QTcpSocket *socket) mutable { auto boundViewHandler = router()->bindCaptured<ViewHandler, ViewTraits>( diff --git a/src/httpserver/qhttpserverresponse.h b/src/httpserver/qhttpserverresponse.h index 9f5d3dd..3fef112 100644 --- a/src/httpserver/qhttpserverresponse.h +++ b/src/httpserver/qhttpserverresponse.h @@ -95,9 +95,9 @@ public: void addHeaders(QHttpServerResponder::HeaderList headers); template<typename Container> - void addHeaders(const Container &headers) + void addHeaders(const Container &headerList) { - for (const auto &header : headers) + for (const auto &header : headerList) addHeader(header.first, header.second); } diff --git a/src/httpserver/qhttpserverrouter.h b/src/httpserver/qhttpserverrouter.h index a1f4174..c3f7565 100644 --- a/src/httpserver/qhttpserverrouter.h +++ b/src/httpserver/qhttpserverrouter.h @@ -102,7 +102,7 @@ public: template<typename ViewHandler, typename ViewTraits = QHttpServerRouterViewTraits<ViewHandler>> typename ViewTraits::BindableType bindCaptured(ViewHandler &&handler, - QRegularExpressionMatch &match) const + const QRegularExpressionMatch &match) const { return bindCapturedImpl<ViewHandler, ViewTraits>( std::forward<ViewHandler>(handler), @@ -127,13 +127,26 @@ private: bool addRuleImpl(QHttpServerRouterRule *rule, const std::initializer_list<int> &metaTypes); + // template<typename ViewHandler, typename ViewTraits, int ... Cx, int ... Px> + // typename ViewTraits::BindableType bindCapturedImpl(ViewHandler &&handler, + // const QRegularExpressionMatch &match, + // QtPrivate::IndexesList<Cx...>, + // QtPrivate::IndexesList<Px...>) const + // { + // return std::bind( + // std::forward<ViewHandler>(handler), + // QVariant(match.captured(Cx + 1)) + // .value<typename ViewTraits::Arguments::template Arg<Cx>::CleanType>()..., + // QtPrivate::QHttpServerRouterPlaceholder<Px>{}...); + // } + template<typename ViewHandler, typename ViewTraits, int ... Cx, int ... Px> - typename ViewTraits::BindableType bindCapturedImpl(ViewHandler &&handler, - QRegularExpressionMatch &match, + typename std::enable_if<ViewTraits::Arguments::CapturableCount != 0, typename ViewTraits::BindableType>::type + bindCapturedImpl(ViewHandler &&handler, + const QRegularExpressionMatch &match, QtPrivate::IndexesList<Cx...>, QtPrivate::IndexesList<Px...>) const { - return std::bind( std::forward<ViewHandler>(handler), QVariant(match.captured(Cx + 1)) @@ -141,6 +154,17 @@ private: QtPrivate::QHttpServerRouterPlaceholder<Px>{}...); } + template<typename ViewHandler, typename ViewTraits, int ... Cx, int ... Px> + typename std::enable_if<!ViewTraits::Arguments::CapturableCount, typename ViewTraits::BindableType>::type + bindCapturedImpl(ViewHandler &&handler, + const QRegularExpressionMatch &, + QtPrivate::IndexesList<Cx...>, + QtPrivate::IndexesList<Px...>) const + { + return std::bind( + std::forward<ViewHandler>(handler), + QtPrivate::QHttpServerRouterPlaceholder<Px>{}...); + } QScopedPointer<QHttpServerRouterPrivate> d_ptr; }; diff --git a/src/httpserver/qhttpserverrouterrule.h b/src/httpserver/qhttpserverrouterrule.h index 2b168b4..20ad2a2 100644 --- a/src/httpserver/qhttpserverrouterrule.h +++ b/src/httpserver/qhttpserverrouterrule.h @@ -48,7 +48,7 @@ class Q_HTTPSERVER_EXPORT QHttpServerRouterRule Q_DECLARE_PRIVATE(QHttpServerRouterRule) public: - using RouterHandler = std::function<void(QRegularExpressionMatch &, + using RouterHandler = std::function<void(const QRegularExpressionMatch &, const QHttpServerRequest &, QTcpSocket *)>; diff --git a/src/httpserver/qhttpserverrouterviewtraits.h b/src/httpserver/qhttpserverrouterviewtraits.h index 377811c..94fd5cc 100644 --- a/src/httpserver/qhttpserverrouterviewtraits.h +++ b/src/httpserver/qhttpserverrouterviewtraits.h @@ -308,14 +308,12 @@ struct ViewTraitsHelper { using Type = std::function<typename FunctionTraits::ReturnType (Args...)>; }; + template<int Id> + using OffsetArg = typename FunctionTraits::template Arg<CaptureOffset + Id>::Type; + template<int ... Idx> - static constexpr typename FunctionWrapper< - typename FunctionTraits::template Arg<CaptureOffset + Idx>::Type...>::Type - eval(QtPrivate::IndexesList<Idx...>) noexcept - { - return FunctionWrapper< - typename FunctionTraits::template Arg<CaptureOffset + Idx>::Type...>::Type(); - } + static constexpr typename FunctionWrapper<OffsetArg<Idx>...>::Type + eval(QtPrivate::IndexesList<Idx...>) noexcept; }; }; |