ReactivePlusPlus
ReactiveX implementation for C++20
Toggle main menu visibility
Loading...
Searching...
No Matches
fwd.hpp
1
// ReactivePlusPlus library
2
//
3
// Copyright Aleksey Loginov 2023 - present.
4
// Distributed under the Boost Software License, Version 1.0.
5
// (See accompanying file LICENSE_1_0.txt or copy at
6
// https://www.boost.org/LICENSE_1_0.txt)
7
//
8
// Project home: https://github.com/AlexInLog/ReactivePlusPlus
9
//
10
11
#pragma once
12
13
#include <rpp/utils/constraints.hpp>
14
15
namespace
rpp::details
16
{
17
template
<rpp::constra
int
::decayed_type TDisposable>
18
class
auto_dispose_wrapper
;
19
}
// namespace rpp::details
20
21
namespace
rpp
22
{
23
struct
interface_disposable
;
24
struct
interface_composite_disposable
;
25
26
template
<rpp::constra
int
::decayed_type TDisposable>
27
class
disposable_wrapper_impl
;
28
34
using
disposable_wrapper
=
disposable_wrapper_impl<interface_disposable>
;
35
41
using
composite_disposable_wrapper
=
disposable_wrapper_impl<interface_composite_disposable>
;
42
}
// namespace rpp
43
44
namespace
rpp::details::disposables
45
{
46
namespace
constraint
47
{
48
template
<
typename
T>
49
concept
disposables_container
=
requires
(T& c,
const
T& const_c,
const
rpp::disposable_wrapper
& d) {
50
c.push_back(d);
51
const_c.dispose();
52
c.clear();
53
};
54
}
// namespace constraint
55
59
class
dynamic_disposables_container
;
60
64
template
<
size_t
Count>
65
class
static_disposables_container
;
66
67
using
default_disposables_container =
dynamic_disposables_container
;
68
}
// namespace rpp::details::disposables
69
70
namespace
rpp
71
{
72
class
composite_disposable
;
73
74
template
<rpp::constra
int
::is_nothrow_invocable Fn>
75
class
callback_disposable
;
76
77
class
refcount_disposable
;
78
79
template
<rpp::constra
int
::is_nothrow_invocable Fn>
80
disposable_wrapper
make_callback_disposable(Fn&& invocable);
81
}
// namespace rpp
rpp::callback_disposable
Disposable invokes underlying callable on disposing.
Definition
callback_disposable.hpp:27
rpp::composite_disposable
Disposable which can keep some other sub-disposables. When this root disposable is disposed,...
Definition
composite_disposable.hpp:175
rpp::details::auto_dispose_wrapper
Definition
disposable_wrapper.hpp:29
rpp::details::disposables::dynamic_disposables_container
Definition
container.hpp:22
rpp::details::disposables::static_disposables_container
Container with fixed std::array as underlying storage.
Definition
container.hpp:66
rpp::disposable_wrapper_impl
Main RPP wrapper over disposables.
Definition
disposable_wrapper.hpp:142
rpp::refcount_disposable
Definition
refcount_disposable.hpp:31
rpp::details::disposables::constraint::disposables_container
Definition
fwd.hpp:49
rpp::composite_disposable_wrapper
disposable_wrapper_impl< interface_composite_disposable > composite_disposable_wrapper
Wrapper to keep "composite" disposable. Specialization of rpp::disposable_wrapper_impl.
Definition
fwd.hpp:41
rpp::disposable_wrapper
disposable_wrapper_impl< interface_disposable > disposable_wrapper
Wrapper to keep "simple" disposable. Specialization of rpp::disposable_wrapper_impl.
Definition
fwd.hpp:34
rpp::interface_composite_disposable
Definition
interface_composite_disposable.hpp:19
rpp::interface_disposable
Interface of disposable.
Definition
interface_disposable.hpp:23
src
rpp
rpp
disposables
fwd.hpp
Generated by
1.17.0