COROIO: coroio/all.hpp Source File
COROIO
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 "utils.hpp"
15#include "init.hpp"
16#include "address.hpp"
17#include "poller.hpp"
18
19#include "select.hpp"
20#include "poll.hpp"
21
22#ifdef __linux__
23
24#ifndef HAVE_EPOLL
25#define HAVE_EPOLL
26#endif
27
28#include "epoll.hpp"
29#include "uring.hpp"
30#endif
31
32#ifdef _WIN32
33
34#ifndef HAVE_EPOLL
35#define HAVE_EPOLL
36#endif
37
38#ifndef HAVE_IOCP
39#define HAVE_IOCP
40#endif
41
42#include "iocp.hpp"
43#include "epoll.hpp"
44#endif
45
46#if defined(__APPLE__) || defined(__FreeBSD__)
47
48#ifndef HAVE_KQUEUE
49#define HAVE_KQUEUE
50#endif
51
52#include "kqueue.hpp"
53#endif
54
55#include "loop.hpp"
56#include "promises.hpp"
57#include "socket.hpp"
58#include "corochain.hpp"
59#include "sockutils.hpp"
60#include "ssl.hpp"
61#include "resolver.hpp"
62
63#ifdef _WIN32
64int pipe(int pipes[2]);
65int socketpair(int domain, int type, int protocol, SOCKET socks[2]);
66int socketpair(int domain, int type, int protocol, int socks[2]);
67#endif
68
69namespace NNet {
70#if defined(__APPLE__) || defined(__FreeBSD__)
71using TDefaultPoller = TKqueue;
72#elif defined(__linux__)
73using TDefaultPoller = TEPoll;
74#elif defined(_WIN32)
75using TDefaultPoller = TIOCp;
76#else
77using TDefaultPoller = TPoll;
78#endif
79
198
199} // namespace NNet
Linux-specific poller implementation using epoll.
Definition epoll.hpp:40
IOCP-based poller for asynchronous I/O on Windows.
Definition iocp.hpp:35
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.