handler.hpp
1 #ifndef XXHR_HANDLER_HPP
2 #define XXHR_HANDLER_HPP
3 
4 namespace xxhr {
5 
6  template<template <class> class Template>
7  struct make_handler_t {
8  template<typename Handler>
9  constexpr Template<Handler> operator()(Handler handler) const {return Template<Handler>(handler);}
10  template<typename Handler>
11  constexpr Template<Handler> operator= (Handler handler) const {return Template<Handler>(handler);}
12  template<typename Handler>
13  constexpr Template<Handler> operator+=(Handler handler) const {return Template<Handler>(handler);}
14  };
15 
16  struct handler {};
17 
18  template <class Handler>
19  struct on_response_ : handler
20  {
21  explicit on_response_(Handler handler) : handler_(handler) {}
22 
23  template<class TResponse>
24  void operator()(TResponse&& e)
25  {
26  handler_(XXHR_FWD(e));
27  }
28 
29  private:
30  Handler handler_;
31  };
32 
39  constexpr make_handler_t<on_response_> on_response;
40 }
41 
42 #endif // XXHR_HANDLER_HPP
main library namespace
Definition: api.hpp:19
constexpr make_handler_t< on_response_ > on_response
Continuation callback ( i.e. signature : void callback(xxhr::Response)) for the asynchronous HTTP ope...
Definition: handler.hpp:39