COROIO: coroio/all.hpp Source File
COROIO
 
All Classes Files Functions Variables Typedefs Pages
Loading...
Searching...
No Matches
all.hpp
1#pragma once
2
3#include <system_error>
4#include <unordered_map>
5#include <vector>
6#include <iostream>
7#include <queue>
8
9#include <cstdint>
10#include <cstdio>
11
12#include <assert.h>
13
14#include "init.hpp"
15#include "address.hpp"
16#include "poller.hpp"
17
18#include "select.hpp"
19#include "poll.hpp"
20
21#ifdef __linux__
22
23#ifndef HAVE_EPOLL
24#define HAVE_EPOLL
25#endif
26
27#ifndef HAVE_URING
28#define HAVE_URING
29#endif
30
31#include "epoll.hpp"
32#include "uring.hpp"
33#endif
34
35#ifdef _WIN32
36
37#ifndef HAVE_EPOLL
38#define HAVE_EPOLL
39#endif
40
41#ifndef HAVE_IOCP
42#define HAVE_IOCP
43#endif
44
45#include "iocp.hpp"
46#include "epoll.hpp"
47#endif
48
49#if defined(__APPLE__) || defined(__FreeBSD__)
50
51#ifndef HAVE_KQUEUE
52#define HAVE_KQUEUE
53#endif
54
55#include "kqueue.hpp"
56#endif
57
58#include "loop.hpp"
59#include "promises.hpp"
60#include "socket.hpp"
61#include "corochain.hpp"
62#include "sockutils.hpp"
63#include "ssl.hpp"
64#include "resolver.hpp"
65
66#ifdef _WIN32
67int pipe(int pipes[2]);
68int socketpair(int domain, int type, int protocol, SOCKET socks[2]);
69int socketpair(int domain, int type, int protocol, int socks[2]);
70#endif
71
72namespace NNet {
73#if defined(__APPLE__) || defined(__FreeBSD__)
74using TDefaultPoller = TKqueue;
75#elif defined(__linux__)
76using TDefaultPoller = TEPoll;
77#elif defined(_WIN32)
78using TDefaultPoller = TIOCp;
79#else
80using TDefaultPoller = TPoll;
81#endif
82
163
164} // namespace NNet
Linux-specific poller implementation using epoll.
Definition epoll.hpp:40
IOCP-based poller for asynchronous I/O on Windows.
Definition iocp.hpp:101
Poller implementation using kqueue (for macOS and FreeBSD).
Definition kqueue.hpp:36
Poller implementation based on the poll() system call.
Definition poll.hpp:39
Implementation of a promise/future system for coroutines.