uvcc
libuv C++ bindings
request.hpp
1 
2 #ifndef UVCC_REQUEST__HPP
3 #define UVCC_REQUEST__HPP
4 
5 #include "uvcc/request-base.hpp"
6 #include "uvcc/request-fs.hpp"
7 #include "uvcc/request-stream.hpp"
8 #include "uvcc/request-udp.hpp"
9 #include "uvcc/request-io.hpp"
10 #include "uvcc/request-dns.hpp"
11 #include "uvcc/request-misc.hpp"
12 
13 #include <uv.h>
14 
15 
16 namespace uv
17 {
18 /*! \defgroup doxy_group__request Requests
19  \brief The classes representing libuv requests. */
20 
21 
22 /* libuv requests */
23 class request;
24 class connect;
25 class write;
26 class shutdown;
27 class udp_send;
28 class fs;
29 template< typename > class work;
30 class getaddrinfo;
31 class getnameinfo;
32 
33 
34 
35 /*! \defgroup doxy_group__request_traits uv_req_traits< typename >
36  \ingroup doxy_group__request
37  \brief The correspondence between libuv request data types and C++ classes representing them. */
38 //! \{
39 //! \cond
40 template< typename _UV_T_ > struct uv_req_traits {};
41 //! \endcond
42 #define req request // redefine the UV_REQ_TYPE_MAP() entry
43 #define work work<> // redefine the UV_REQ_TYPE_MAP() entry
44 #define XX(X, x) template<> struct uv_req_traits< uv_##x##_t > { using type = x; };
45 UV_REQ_TYPE_MAP(XX)
46 #undef req
47 #undef work
48 #undef XX
49 //! \}
50 
51 
52 }
53 
54 
55 #endif
Namespace for all uvcc definitions.
Definition: buffer.hpp:17
Work scheduling request type.
UDP send request type.
Definition: request-udp.hpp:24
The base class for the libuv requests.
Stream connect request type.
Getaddrinfo request type.
Definition: request-dns.hpp:22
Stream shutdown request type.
The base calss for filesystem requests.
Definition: request-fs.hpp:40
Stream write request type.
Getnameinfo request type.