ReactivePlusPlus
ReactiveX implementation for C++20
Loading...
Searching...
No Matches
fwd.hpp
1// ReactivePlusPlus library
2//
3// Copyright Aleksey Loginov 2022 - 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/victimsnino/ReactivePlusPlus
9
10#pragma once
11
12#include <rpp/disposables/fwd.hpp>
13#include <rpp/observables/fwd.hpp>
14#include <rpp/observers/fwd.hpp>
15
16#include <rpp/utils/constraints.hpp>
17#include <rpp/utils/utils.hpp>
18
19namespace rpp::subjects
20{
21 template<rpp::constraint::decayed_type Type>
22 class publish_subject;
23
24 template<rpp::constraint::decayed_type Type>
25 class serialized_publish_subject;
26
27
28 template<rpp::constraint::decayed_type Type>
29 class replay_subject;
30
31 template<rpp::constraint::decayed_type Type>
32 class serialized_replay_subject;
33
34
35 template<rpp::constraint::decayed_type Type>
37
38 template<rpp::constraint::decayed_type Type>
40
41
42} // namespace rpp::subjects
43
44namespace rpp::constraint
45{
46 template<typename T>
47 concept subject = requires(const T& subj) {
48 {
49 subj.get_observer()
51 {
52 subj.get_observable()
54 {
55 subj.get_disposable()
57 };
58} // namespace rpp::constraint
59
60namespace rpp::subjects::utils
61{
62 template<constraint::subject T>
63 using extract_subject_type_t = rpp::utils::extract_observer_type_t<decltype(std::declval<T>().get_observer())>;
64} // namespace rpp::subjects::utils
Same as rpp::subjects::publish_subject but keeps last value (or default) and emits it to newly subscr...
Definition fwd.hpp:36
Same as rpp::subjects::behavior_subject but on_next/on_error/on_completed calls are serialized via mu...
Definition fwd.hpp:39
Definition constraints.hpp:28
Definition fwd.hpp:80
Definition fwd.hpp:250
Definition fwd.hpp:47