aboutsummaryrefslogtreecommitdiffstats
path: root/Rx/v2/examples/doxygen
diff options
context:
space:
mode:
authorKirk Shoop <kirk.shoop@microsoft.com>2016-04-23 22:18:33 -0700
committerKirk Shoop <kirk.shoop@microsoft.com>2016-04-24 00:45:30 -0700
commitce867895c4c2348e21f3dabfe5dca13c67fd990b (patch)
treebde1df1873b1c98e05e8b991b5071dd125f2dc75 /Rx/v2/examples/doxygen
parent7154876bada9f1c86039086b187c8be5ad987895 (diff)
downloadplatform_external_Reactive-Extensions_RxCpp-ce867895c4c2348e21f3dabfe5dca13c67fd990b.tar.gz
platform_external_Reactive-Extensions_RxCpp-ce867895c4c2348e21f3dabfe5dca13c67fd990b.tar.bz2
platform_external_Reactive-Extensions_RxCpp-ce867895c4c2348e21f3dabfe5dca13c67fd990b.zip
added window_toggle
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");
+}