MCPcopy Create free account
hub / github.com/AlexInLog/ReactivePlusPlus / main

Function main

src/examples/rpp/doxygen/defer.cpp:9–42  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7 **/
8
9int main() // NOLINT(bugprone-exception-escape)
10{
11 //! [defer from_iterable]
12 rpp::source::defer([] {
13 std::cout << "Observable factory called\n";
14 return rpp::source::from_iterable(std::array{ 1,2,3 }); })
15 .subscribe([](int v) { std::cout << v << "\n"; }, rpp::utils::rethrow_error_t{}, []() { std::cout << "On complete\n"; });
16 // Output: Observable factory called
17 // 1
18 // 2
19 // 3
20 // On complete
21 //! [defer from_iterable]
22
23 //! [defer mutable source]
24 auto obs = rpp::source::defer([] {
25 std::cout << "Observable factory called\n";
26 const auto state = std::make_shared<int>(0);
27 auto inner_obs = rpp::source::create<int>([state](const auto& obs) {
28 obs.on_next((*state)++);
29 obs.on_completed();
30 });
31 return inner_obs;
32 });
33 obs.subscribe([](int v) { std::cout << v << "\n"; }, rpp::utils::rethrow_error_t{}, []() { std::cout << "On complete\n"; });
34 obs.subscribe([](int v) { std::cout << v << "\n"; }, rpp::utils::rethrow_error_t{}, []() { std::cout << "On complete\n"; });
35 // Output: Observable factory called
36 // 0
37 // On complete
38 // Observable factory called
39 // 0
40 // On complete
41 //! [defer mutable source]
42}

Callers

nothing calls this directly

Calls 5

deferFunction · 0.85
from_iterableFunction · 0.85
subscribeMethod · 0.45
on_nextMethod · 0.45
on_completedMethod · 0.45

Tested by

no test coverage detected