Condy v1.9
C++ Asynchronous System Call Layer for Linux
Loading...
Searching...
No Matches
senders.hpp
Go to the documentation of this file.
1
5
6#pragma once
7
10#ifdef CONDY_DETAIL_HAS_EXECUTION
12#endif
13
14namespace condy {
15
16#ifdef CONDY_DETAIL_HAS_EXECUTION
17
18template <PrepFuncLike PrepFunc, CQEHandlerLike CQEHandler>
19using OpSender = detail::StandardSender<detail::OpSender<PrepFunc, CQEHandler>>;
20
21template <PrepFuncLike PrepFunc, CQEHandlerLike CQEHandler,
22 typename MultiShotFunc>
23using MultiShotOpSender = detail::StandardSender<
24 detail::MultiShotOpSender<PrepFunc, CQEHandler, MultiShotFunc>>;
25
26template <PrepFuncLike PrepFunc, CQEHandlerLike CQEHandler, typename FreeFunc>
27using ZeroCopyOpSender = detail::StandardSender<
28 detail::ZeroCopyOpSender<PrepFunc, CQEHandler, FreeFunc>>;
29
30template <unsigned int Flags, typename Sender>
31using FlaggedOpSender =
32 detail::StandardSender<detail::FlaggedOpSender<Flags, Sender>>;
33
34template <typename... Senders>
35using ParallelAllSender =
36 detail::StandardSender<detail::ParallelAllSender<Senders...>>;
37
38template <typename... Senders>
39using ParallelAnySender =
40 detail::StandardSender<detail::ParallelAnySender<Senders...>>;
41
42template <typename... Senders>
43using WhenAllSender = detail::StandardSender<detail::WhenAllSender<Senders...>>;
44
45template <typename... Senders>
46using WhenAnySender = detail::StandardSender<detail::WhenAnySender<Senders...>>;
47
48template <typename... Senders>
49using LinkSender = detail::StandardSender<detail::LinkSender<Senders...>>;
50
51template <typename... Senders>
52using HardLinkSender =
53 detail::StandardSender<detail::HardLinkSender<Senders...>>;
54
55template <typename Sender>
56using RangedParallelAllSender =
57 detail::StandardSender<detail::RangedParallelAllSender<Sender>>;
58
59template <typename Sender>
60using RangedParallelAnySender =
61 detail::StandardSender<detail::RangedParallelAnySender<Sender>>;
62
63template <typename Sender>
64using RangedWhenAllSender =
65 detail::StandardSender<detail::RangedWhenAllSender<Sender>>;
66
67template <typename Sender>
68using RangedWhenAnySender =
69 detail::StandardSender<detail::RangedWhenAnySender<Sender>>;
70
71template <typename Sender>
72using RangedLinkSender =
73 detail::StandardSender<detail::RangedLinkSender<Sender>>;
74
75template <typename Sender>
76using RangedHardLinkSender =
77 detail::StandardSender<detail::RangedHardLinkSender<Sender>>;
78
79#else
80
81using detail::FlaggedOpSender;
82using detail::HardLinkSender;
83using detail::LinkSender;
84using detail::MultiShotOpSender;
85using detail::OpSender;
86using detail::ParallelAllSender;
87using detail::ParallelAnySender;
88using detail::RangedHardLinkSender;
89using detail::RangedLinkSender;
90using detail::RangedParallelAllSender;
91using detail::RangedParallelAnySender;
92using detail::RangedWhenAllSender;
93using detail::RangedWhenAnySender;
94using detail::WhenAllSender;
95using detail::WhenAnySender;
96using detail::ZeroCopyOpSender;
97
98#endif
99
100} // namespace condy
Internal sender/receiver adapters for std::execution integration.
Sender types for composing asynchronous operations.
Detection and aliasing of the available std::execution backend.
The main namespace for the Condy library.
Definition condy.hpp:38