aboutsummaryrefslogtreecommitdiffstats
path: root/Rx/v2/examples/doxygen
diff options
context:
space:
mode:
Diffstat (limited to 'Rx/v2/examples/doxygen')
-rw-r--r--Rx/v2/examples/doxygen/window.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/Rx/v2/examples/doxygen/window.cpp b/Rx/v2/examples/doxygen/window.cpp
index 0b2850c..9443ecb 100644
--- a/Rx/v2/examples/doxygen/window.cpp
+++ b/Rx/v2/examples/doxygen/window.cpp
@@ -192,3 +192,49 @@ SCENARIO("window period+count sample"){
});
printf("//! [window period+count sample]\n");
}
+
+SCENARIO("window toggle+coordination sample"){
+ printf("//! [window toggle+coordination sample]\n");
+ int counter = 0;
+ auto values = rxcpp::observable<>::interval(std::chrono::steady_clock::now() + std::chrono::milliseconds(1), std::chrono::milliseconds(2)).
+ take(7).
+ window_toggle(
+ rxcpp::observable<>::interval(std::chrono::milliseconds(4)),
+ [](long){
+ return rxcpp::observable<>::interval(std::chrono::milliseconds(4)).skip(1);
+ },
+ rxcpp::observe_on_new_thread());
+ values.
+ as_blocking().
+ subscribe(
+ [&counter](rxcpp::observable<long> v){
+ int id = counter++;
+ printf("[window %d] Create window\n", id);
+ v.subscribe(
+ [id](long v){printf("[window %d] OnNext: %ld\n", id, v);},
+ [id](){printf("[window %d] OnCompleted\n", id);});
+ });
+ printf("//! [window toggle+coordination sample]\n");
+}
+
+SCENARIO("window toggle sample"){
+ printf("//! [window toggle sample]\n");
+ int counter = 0;
+ auto values = rxcpp::observable<>::interval(std::chrono::steady_clock::now() + std::chrono::milliseconds(1), std::chrono::milliseconds(2)).
+ take(7).
+ window_toggle(
+ rxcpp::observable<>::interval(std::chrono::milliseconds(4)),
+ [](long){
+ return rxcpp::observable<>::interval(std::chrono::milliseconds(4)).skip(1);
+ });
+ values.
+ subscribe(
+ [&counter](rxcpp::observable<long> v){
+ int id = counter++;
+ printf("[window %d] Create window\n", id);
+ v.subscribe(
+ [id](long v){printf("[window %d] OnNext: %ld\n", id, v);},
+ [id](){printf("[window %d] OnCompleted\n", id);});
+ });
+ printf("//! [window toggle sample]\n");
+}