qb  2.0.0.0
C++17 Actor Framework
qb Issue Watch Star Fork Follow @isndev
Loading...
Searching...
No Matches
async.h
Go to the documentation of this file.
1
29
30#ifndef QB_IO_ASYNC_H_
31#define QB_IO_ASYNC_H_
32
33#include "async/event/all.h"
34#include "async/file.h"
35#include "async/io.h"
36#include "async/tcp/connector.h"
37#include "async/tcp/client.h"
38#include "async/tcp/server.h"
39#include "async/udp/client.h"
40#include "async/udp/server.h"
41#include "config.h"
42
43#include "transport/accept.h"
44#include "transport/tcp.h"
45
46#ifdef QB_IO_WITH_SSL
47#include "transport/saccept.h"
48#include "transport/stcp.h"
49#endif
50
51namespace qb::io {
52
63template <typename _Derived>
64struct use {
65 template <typename _Protocol>
66 using input = async::input<_Derived>;
67 template <typename _Protocol>
68 using output = async::output<_Derived>;
69 template <typename _Protocol>
70 using io = async::io<_Derived>;
71
73 struct tcp {
75
76 template <typename _Client>
77 using io_handler = async::io_handler<_Derived, _Client>;
78
79 template <typename _Client>
81
82 template <typename _Server = void>
84
85#ifdef QB_IO_WITH_SSL
87 struct ssl {
89
90 template <typename _Client>
91 using io_handler = async::io_handler<_Derived, _Client>;
92
93 template <typename _Client>
95
96 template <typename _Server = void>
98 };
99#endif
100 };
101
103 struct udp {
104 using server = async::udp::server<_Derived>;
105 using client = async::udp::client<_Derived>;
106
107 // template <typename _Client>
108 // using server = async::udp::server<_Derived, _Client>;
109 //
110 // template <template <typename _BaseProtocol> typename _Protocol,
111 // typename _Server = void>
112 // using client = async::udp::client<_Derived, _Protocol, _Server>;
113
114#ifdef QB_IO_WITH_SSL
115 // Todo: implement dtls
116#endif
117 };
118
119 using timeout = async::with_timeout<_Derived>;
120 using file = async::file<_Derived>;
121};
122
123} // namespace qb::io
124
125#endif // QB_IO_ASYNC_H_
Aggregation of all event types for the asynchronous I/O system.
Asynchronous file operations for the QB IO library.
Asynchronous file operations handler.
Definition file.h:46
CRTP base class for managing asynchronous input operations with protocol processing.
Definition io.h:517
Session manager for asynchronous IO.
Definition io_handler.h:47
CRTP base class for managing bidirectional asynchronous I/O operations with protocol processing.
Definition io.h:938
CRTP base class for managing asynchronous output operations.
Definition io.h:755
Handles accepting incoming TCP connections asynchronously.
Definition acceptor.h:52
Server-associated asynchronous TCP client.
Definition client.h:49
Asynchronous TCP server implementation.
Definition server.h:50
Asynchronous UDP client implementation.
Definition client.h:47
Asynchronous UDP server implementation.
Definition server.h:47
CRTP base class that adds timeout functionality to derived asynchronous components.
Definition io.h:96
Asynchronous TCP connection establishment utilities.
Core asynchronous I/O class templates for event-driven operations.
Configuration and platform-specific definitions for the QB IO library.
Secure (SSL/TLS) TCP connection acceptance transport for the QB IO library.
Secure TCP (SSL/TLS) stream transport for the QB IO library.
Provides type aliases for TCP-based asynchronous components.
Definition async.h:73
Provides type aliases for UDP-based asynchronous components.
Definition async.h:103
Helper template providing type aliases for integrating qb-io asynchronous components.
Definition async.h:64
Asynchronous TCP client implementation for the QB IO library.
Asynchronous TCP server implementation for the QB IO library.
TCP stream transport implementation for the QB IO library.
TCP connection acceptance transport implementation for the QB IO library.
Asynchronous UDP client implementation.
Asynchronous UDP server implementation.