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

Function main

src/examples/rpp/doxygen/multicast.cpp:8–57  ·  view source on GitHub ↗

* @example multicast.cpp **/

Source from the content-addressed store, hash-verified

6 * @example multicast.cpp
7 **/
8int main() // NOLINT(bugprone-exception-escape)
9{
10 {
11 //! [multicast]
12 auto subject = rpp::subjects::publish_subject<int>{};
13 auto observable = rpp::source::just(1, 2, 3) | rpp::operators::multicast(subject);
14 observable.subscribe([](int v) { std::cout << "#1 " << v << std::endl; });
15 observable.subscribe([](int v) { std::cout << "#2 " << v << std::endl; });
16 observable.connect();
17 // Output:
18 // #1 1
19 // #2 1
20 // #1 2
21 // #2 2
22 // #1 3
23 // #2 3
24 //! [multicast]
25 }
26 {
27 //! [multicast_template]
28 auto observable = rpp::source::just(1, 2, 3) | rpp::operators::multicast<rpp::subjects::publish_subject>();
29 observable.subscribe([](int v) { std::cout << "#1 " << v << std::endl; });
30 observable.subscribe([](int v) { std::cout << "#2 " << v << std::endl; });
31 observable.connect();
32 // Output:
33 // #1 1
34 // #2 1
35 // #1 2
36 // #2 2
37 // #1 3
38 // #2 3
39 //! [multicast_template]
40 }
41 {
42 //! [publish]
43 auto observable = rpp::source::just(1, 2, 3) | rpp::operators::publish();
44 observable.subscribe([](int v) { std::cout << "#1 " << v << std::endl; });
45 observable.subscribe([](int v) { std::cout << "#2 " << v << std::endl; });
46 observable.connect();
47 // Output:
48 // #1 1
49 // #2 1
50 // #1 2
51 // #2 2
52 // #1 3
53 // #2 3
54 //! [publish]
55 }
56 return 0;
57}

Callers

nothing calls this directly

Calls 5

justFunction · 0.85
multicastFunction · 0.85
publishFunction · 0.85
connectMethod · 0.80
subscribeMethod · 0.45

Tested by

no test coverage detected