proxygen
forwards.h
Go to the documentation of this file.
1 /*
2  * Copyright 2018-present Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #pragma once
17 
19 #include <chrono>
20 #include <exception>
21 
22 namespace folly {
23 namespace pushmi {
24 
25 // property_set
26 
27 template <class T, class = void>
29 
30 template <class T, class = void>
32 
33 template <class... PropertyN>
34 struct property_set;
35 
36 // trait & tag types
37 template <class... TN>
38 struct is_single;
39 template <class... TN>
40 struct is_many;
41 
42 template <class... TN>
43 struct is_flow;
44 
45 template <class... TN>
46 struct is_receiver;
47 
48 template <class... TN>
49 struct is_sender;
50 
51 template <class... TN>
52 struct is_executor;
53 
54 template <class... TN>
55 struct is_time;
56 template <class... TN>
57 struct is_constrained;
58 
59 template <class... TN>
60 struct is_always_blocking;
61 
62 template <class... TN>
63 struct is_never_blocking;
64 
65 template <class... TN>
66 struct is_maybe_blocking;
67 
68 template <class... TN>
69 struct is_fifo_sequence;
70 
71 template <class... TN>
73 
74 // implementation types
75 
76 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
77 class receiver;
78 
79 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
81 
82 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
84 
85 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
87 
88 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
90 
91 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
93 
94 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
96 
97 template <PUSHMI_TYPE_CONSTRAINT(SemiMovable)... TN>
99 
100 template <class E = std::exception_ptr, class... VN>
102 
103 template <
104  class PE = std::exception_ptr,
105  class PV = std::ptrdiff_t,
106  class E = PE,
107  class... VN>
108 class any_flow_receiver;
109 
110 template <class E = std::exception_ptr, class... VN>
112 
113 template <class E = std::exception_ptr, class... VN>
115 
116 template <class PE = std::exception_ptr, class E = PE, class... VN>
118 
119 template <
120  class PE = std::exception_ptr,
121  class PV = std::ptrdiff_t,
122  class E = PE,
123  class... VN>
125 
126 template <class E = std::exception_ptr, class C = std::ptrdiff_t, class... VN>
128 
129 template <
130  class E = std::exception_ptr,
131  class TP = std::chrono::system_clock::time_point,
132  class... VN>
134 
135 template <class E = std::exception_ptr>
136 struct any_executor;
137 
138 template <class E = std::exception_ptr>
139 struct any_executor_ref;
140 
141 template <class E = std::exception_ptr, class CV = std::ptrdiff_t>
143 
144 template <class E = std::exception_ptr, class TP = std::ptrdiff_t>
146 
147 template <
148  class E = std::exception_ptr,
149  class TP = std::chrono::system_clock::time_point>
150 struct any_time_executor;
151 
152 template <
153  class E = std::exception_ptr,
154  class TP = std::chrono::system_clock::time_point>
155 struct any_time_executor_ref;
156 
157 namespace operators {}
158 namespace extension_operators {}
159 namespace aliases {
160 namespace v = ::folly::pushmi;
161 namespace mi = ::folly::pushmi;
162 namespace op = ::folly::pushmi::operators;
163 namespace ep = ::folly::pushmi::extension_operators;
164 } // namespace aliases
165 
166 namespace detail {
167 struct any {
168  template <class T>
169  constexpr any(T&&) noexcept {}
170 };
171 } // namespace detail
172 
173 } // namespace pushmi
174 } // namespace folly
folly::std T
—— Concurrent Priority Queue Implementation ——
Definition: AtomicBitSet.h:29
requires E e noexcept(noexcept(s.error(std::move(e))))
#define C(name, bit)
Definition: CpuId.h:204
decltype(pe) PE
#define PUSHMI_TYPE_CONSTRAINT(...)
Definition: concept_def.h:420
constexpr any(T &&) noexcept
Definition: forwards.h:169