proxygen
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
empty.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
18
#include <
folly/experimental/pushmi/detail/functional.h
>
19
#include <
folly/experimental/pushmi/o/extension_operators.h
>
20
#include <
folly/experimental/pushmi/o/submit.h
>
21
22
namespace
folly
{
23
namespace
pushmi {
24
namespace
detail
{
25
struct
single_empty_sender_base
:
single_sender
<ignoreSF, inlineEXF> {
26
using
properties
=
property_set
<
27
is_sender<>
,
28
is_single<>
,
29
is_always_blocking<>
,
30
is_fifo_sequence<>
>;
31
};
32
template
<
class
... VN>
33
struct
single_empty_impl
{
34
PUSHMI_TEMPLATE
(
class
Out)
35
(
requires
ReceiveValue<Out, VN...>)
36
void
operator
()(
37
single_empty_sender_base
&,
38
Out out) {
39
set_done
(out);
40
}
41
};
42
}
// namespace detail
43
44
namespace
operators {
45
template
<
class
... VN>
46
auto
empty
() {
47
return
make_single_sender
(
48
detail::single_empty_sender_base
{},
detail::single_empty_impl
<VN...>{});
49
}
50
51
inline
auto
empty
() {
52
return
make_single_sender
(
53
detail::single_empty_sender_base
{},
detail::single_empty_impl<>
{});
54
}
55
56
}
// namespace operators
57
}
// namespace pushmi
58
}
// namespace folly
folly::pushmi::is_single<>
Definition:
concepts.h:70
folly::pushmi::property_set
Definition:
forwards.h:34
folly::pushmi::is_sender<>
Definition:
concepts.h:134
folly::pushmi::single_sender
Definition:
forwards.h:83
folly
—— Concurrent Priority Queue Implementation ——
Definition:
AtomicBitSet.h:29
folly::pushmi::is_always_blocking<>
Definition:
concepts.h:200
detail
Definition:
HashBenchmark.cpp:32
folly::empty
constexpr auto empty(C const &c) -> decltype(c.empty())
Definition:
Access.h:55
submit.h
folly::pushmi::detail::requires
requires requires(::folly::pushmi::invoke(std::declval< F >(), std::get< Is >(std::declval< Tuple >())...))) const expr decltype(auto) apply_impl(F &&f
folly::pushmi::detail::single_empty_sender_base
Definition:
empty.h:25
folly::pushmi::is_fifo_sequence<>
Definition:
concepts.h:254
extension_operators.h
folly::pushmi::detail::single_empty_impl
Definition:
empty.h:33
folly::pushmi::detail::PUSHMI_TEMPLATE
PUSHMI_TEMPLATE(class In, class Out, bool SenderRequires, bool SingleSenderRequires, bool TimeSingleSenderRequires)(requires Sender< In > &&Receiver< Out >) constexpr bool sender_requires_from()
Definition:
extension_operators.h:224
folly::pushmi::make_single_sender
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::make_single_sender_fn make_single_sender
functional.h
folly::pushmi::set_done
PUSHMI_INLINE_VAR constexpr __adl::set_done_fn set_done
Definition:
extension_points.h:355
proxygen
folly
folly
experimental
pushmi
o
empty.h
Generated by
1.8.11