RxCpp
The Reactive Extensions for Native (RxCpp) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators in both C and C++.
|
a source of values. subscribe or use one of the operator methods that return a new observable, which uses this observable as a source. More...
#include <rx-observable.hpp>
Public Types | |
typedef rxu::decay_t< SourceOperator > | source_operator_type |
typedef T | value_type |
Public Types inherited from rxcpp::observable_base< T > | |
typedef tag_observable | observable_tag |
typedef T | value_type |
Public Member Functions | |
~observable () | |
observable () | |
observable (const source_operator_type &o) | |
observable (source_operator_type &&o) | |
template<class SO > | |
observable (const observable< T, SO > &o) | |
implicit conversion between observables of the same value_type More... | |
template<class SO > | |
observable (observable< T, SO > &&o) | |
implicit conversion between observables of the same value_type More... | |
template<class... AN> | |
observable< T > | as_dynamic (AN **...) const |
template<class... AN> | |
blocking_observable< T, this_type > | as_blocking (AN **...) const |
template<class... ArgN> | |
auto | subscribe (ArgN &&...an) const -> composite_subscription |
Subscribe will cause the source observable to emit values to the provided subscriber. More... | |
template<class... AN> | |
auto | all (AN &&...an) const |
Returns an Observable that emits true if every item emitted by the source Observable satisfies a specified condition, otherwise false. Emits true if the source Observable terminates without emitting any item. More... | |
template<class... AN> | |
auto | is_empty (AN &&...an) const |
Returns an Observable that emits true if the source Observable is empty, otherwise false. More... | |
template<class... AN> | |
auto | any (AN &&...an) const |
Returns an Observable that emits true if any item emitted by the source Observable satisfies a specified condition, otherwise false. Emits false if the source Observable terminates without emitting any item. More... | |
template<class... AN> | |
auto | exists (AN &&...an) const |
Returns an Observable that emits true if any item emitted by the source Observable satisfies a specified condition, otherwise false. Emits false if the source Observable terminates without emitting any item. More... | |
template<class... AN> | |
auto | contains (AN &&...an) const |
Returns an Observable that emits true if the source Observable emitted a specified item, otherwise false. Emits false if the source Observable terminates without emitting any item. More... | |
template<class... AN> | |
auto | filter (AN &&...an) const |
For each item from this observable use Predicate to select which items to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | switch_if_empty (AN &&...an) const |
If the source Observable terminates without emitting any items, emits items from a backup Observable. More... | |
template<class... AN> | |
auto | default_if_empty (AN &&...an) const |
If the source Observable terminates without emitting any items, emits a default item and completes. More... | |
template<class... AN> | |
auto | sequence_equal (AN...an) const |
Determine whether two Observables emit the same sequence of items. More... | |
template<class... AN> | |
auto | tap (AN &&...an) const |
inspect calls to on_next, on_error and on_completed. More... | |
template<class... AN> | |
auto | time_interval (AN &&...an) const |
Returns an observable that emits indications of the amount of time lapsed between consecutive emissions of the source observable. The first emission from this new Observable indicates the amount of time lapsed between the time when the observer subscribed to the Observable and the time when the source Observable emitted its first item. More... | |
template<class... AN> | |
auto | timeout (AN &&...an) const |
Return an observable that terminates with timeout_error if a particular timespan has passed without emitting another item from the source observable. More... | |
template<class... AN> | |
auto | timestamp (AN &&...an) const |
Returns an observable that attaches a timestamp to each item emitted by the source observable indicating when it was emitted. More... | |
template<class... AN> | |
auto | finally (AN &&...an) const |
Add a new action at the end of the new observable that is returned. More... | |
template<class... AN> | |
auto | on_error_resume_next (AN &&...an) const |
If an error occurs, take the result from the Selector and subscribe to that instead. More... | |
template<class... AN> | |
auto | switch_on_error (AN &&...an) const |
If an error occurs, take the result from the Selector and subscribe to that instead. More... | |
template<class... AN> | |
auto | map (AN &&...an) const |
For each item from this observable use Selector to produce an item to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | transform (AN &&...an) const |
For each item from this observable use Selector to produce an item to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | debounce (AN &&...an) const |
Return an observable that emits an item if a particular timespan has passed without emitting another item from the source observable. More... | |
template<class... AN> | |
auto | delay (AN &&...an) const |
Return an observable that emits each item emitted by the source observable after the specified delay. More... | |
template<class... AN> | |
auto | distinct (AN &&...an) const |
For each item from this observable, filter out repeated values and emit only items that have not already been emitted. More... | |
template<class... AN> | |
auto | distinct_until_changed (AN &&...an) const |
For each item from this observable, filter out consequentially repeated values and emit only changes from the new observable that is returned. More... | |
template<class... AN> | |
auto | element_at (AN &&...an) const |
Pulls an item located at a specified index location in the sequence of items and emits that item as its own sole emission. More... | |
template<class... AN> | |
auto | window (AN &&...an) const |
Return an observable that emits connected, non-overlapping windows, each containing at most count items from the source observable. If the skip parameter is set, return an observable that emits windows every skip items containing at most count items from the source observable. More... | |
template<class... AN> | |
auto | window_with_time (AN &&...an) const |
Return an observable that emits observables every period time interval and collects items from this observable for period of time into each produced observable, on the specified scheduler. If the skip parameter is set, return an observable that emits observables every skip time interval and collects items from this observable for period of time into each produced observable, on the specified scheduler. More... | |
template<class... AN> | |
auto | window_with_time_or_count (AN &&...an) const |
Return an observable that emits connected, non-overlapping windows of items from the source observable that were emitted during a fixed duration of time or when the window has reached maximum capacity (whichever occurs first), on the specified scheduler. More... | |
template<class... AN> | |
auto | window_toggle (AN &&...an) const |
Return an observable that emits observables every period time interval and collects items from this observable for period of time into each produced observable, on the specified scheduler. More... | |
template<class... AN> | |
auto | buffer (AN &&...an) const |
Return an observable that emits connected, non-overlapping buffer, each containing at most count items from the source observable. If the skip parameter is set, return an observable that emits buffers every skip items containing at most count items from the source observable. More... | |
template<class... AN> | |
auto | buffer_with_time (AN &&...an) const |
Return an observable that emits buffers every period time interval and collects items from this observable for period of time into each produced buffer. If the skip parameter is set, Return an observable that emits buffers every skip time interval and collects items from this observable for period of time into each produced buffer, on the specified scheduler. More... | |
template<class... AN> | |
auto | buffer_with_time_or_count (AN &&...an) const |
Return an observable that emits connected, non-overlapping buffers of items from the source observable that were emitted during a fixed duration of time or when the buffer has reached maximum capacity (whichever occurs first), on the specified scheduler. More... | |
template<class... AN> | |
auto | switch_on_next (AN &&...an) const |
Return observable that emits the items emitted by the observable most recently emitted by the source observable. More... | |
template<class... AN> | |
auto | merge (AN...an) const |
For each given observable subscribe. For each item emitted from all of the given observables, deliver from the new observable that is returned. More... | |
template<class... AN> | |
auto | amb (AN...an) const |
For each item from only the first of the given observables deliver from the new observable that is returned, on the specified scheduler. More... | |
template<class... AN> | |
auto | flat_map (AN &&...an) const |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | merge_transform (AN &&...an) const |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | concat (AN...an) const |
For each item from this observable subscribe to one at a time, in the order received. For each item from all of the given observables deliver from the new observable that is returned. More... | |
template<class... AN> | |
auto | concat_map (AN &&...an) const |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | concat_transform (AN &&...an) const |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | with_latest_from (AN...an) const |
For each item from the first observable select the latest value from all the observables to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | combine_latest (AN...an) const |
For each item from all of the observables select a value to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | zip (AN &&...an) const |
Bring by one item from all given observables and select a value to emit from the new observable that is returned. More... | |
template<class... AN> | |
auto | group_by (AN &&...an) const |
Return an observable that emits grouped_observables, each of which corresponds to a unique key value and each of which emits those items from the source observable that share that key value. More... | |
template<class... AN> | |
auto | ignore_elements (AN &&...an) const |
Do not emit any items from the source Observable, but allow termination notification (either onError or onCompleted) to pass through unchanged. More... | |
template<class... AN> | |
auto | multicast (AN &&...an) const |
template<class... AN> | |
auto | publish (AN &&...an) const |
Turn a cold observable hot and allow connections to the source to be independent of subscriptions. Turn a cold observable hot, send the most recent value to any new subscriber, and allow connections to the source to be independent of subscriptions. More... | |
template<class... AN> | |
auto | publish_synchronized (AN &&...an) const |
Turn a cold observable hot and allow connections to the source to be independent of subscriptions. More... | |
template<class... AN> | |
auto | replay (AN &&...an) const |
1) replay(optional Coordination, optional CompositeSubscription) Turn a cold observable hot, send all earlier emitted values to any new subscriber, and allow connections to the source to be independent of subscriptions. More... | |
template<class... AN> | |
auto | subscribe_on (AN &&...an) const |
Subscription and unsubscription are queued and delivered using the scheduler from the supplied coordination. More... | |
template<class... AN> | |
auto | observe_on (AN &&...an) const |
All values are queued and delivered using the scheduler from the supplied coordination. More... | |
template<class... AN> | |
auto | reduce (AN &&...an) const |
For each item from this observable use Accumulator to combine items, when completed use ResultSelector to produce a value that will be emitted from the new observable that is returned. More... | |
template<class... AN> | |
auto | accumulate (AN &&...an) const |
For each item from this observable use Accumulator to combine items, when completed use ResultSelector to produce a value that will be emitted from the new observable that is returned. More... | |
template<class... AN> | |
auto | first (AN **...) const |
For each item from this observable reduce it by sending only the first item. More... | |
template<class... AN> | |
auto | last (AN **...) const |
For each item from this observable reduce it by sending only the last item. More... | |
template<class... AN> | |
auto | count (AN **...) const |
For each item from this observable reduce it by incrementing a count. More... | |
template<class... AN> | |
auto | sum (AN **...) const |
For each item from this observable reduce it by adding to the previous items. More... | |
template<class... AN> | |
auto | average (AN **...) const |
For each item from this observable reduce it by adding to the previous values and then dividing by the number of items at the end. More... | |
template<class... AN> | |
auto | max (AN **...) const |
For each item from this observable reduce it by taking the max value of the previous items. More... | |
template<class... AN> | |
auto | min (AN **...) const |
For each item from this observable reduce it by taking the min value of the previous items. More... | |
template<class... AN> | |
auto | scan (AN...an) const |
For each item from this observable use Accumulator to combine items into a value that will be emitted from the new observable that is returned. More... | |
template<class... AN> | |
auto | sample_with_time (AN &&...an) const |
Return an Observable that emits the most recent items emitted by the source Observable within periodic time intervals. More... | |
template<class... AN> | |
auto | skip (AN...an) const |
Make new observable with skipped first count items from this observable. More... | |
template<class... AN> | |
auto | skip_last (AN...an) const |
Make new observable with skipped last count items from this observable. More... | |
template<class... AN> | |
auto | skip_until (AN...an) const |
Make new observable with items skipped until on_next occurs on the trigger observable or until the specified time. skip_until takes (TriggerObservable, optional Coordination) or (TimePoint, optional Coordination) More... | |
template<class... AN> | |
auto | take (AN...an) const |
For the first count items from this observable emit them from the new observable that is returned. More... | |
template<class... AN> | |
auto | take_last (AN &&...an) const |
Emit only the final t items emitted by the source Observable. More... | |
template<class... AN> | |
auto | take_until (AN &&...an) const |
For each item from this observable until on_next occurs on the trigger observable or until the specified time, emit them from the new observable that is returned. take_until takes (TriggerObservable, optional Coordination) or (TimePoint, optional Coordination) More... | |
template<class... AN> | |
auto | take_while (AN &&...an) const |
For the first items fulfilling the predicate from this observable emit them from the new observable that is returned. More... | |
template<class... AN> | |
auto | repeat (AN...an) const |
Repeat this observable for the given number of times or infinitely. More... | |
template<class... AN> | |
auto | retry (AN...an) const |
Retry this observable for the given number of times. More... | |
template<class... AN> | |
auto | start_with (AN...an) const |
Start with the supplied values, then concatenate this observable. More... | |
template<class... AN> | |
auto | pairwise (AN...an) const |
Take values pairwise from this observable. More... | |
Public Attributes | |
source_operator_type | source_operator |
Friends | |
template<class U , class SO > | |
class | observable |
template<class U , class SO > | |
bool | operator== (const observable< U, SO > &, const observable< U, SO > &) |
a source of values. subscribe or use one of the operator methods that return a new observable, which uses this observable as a source.
typedef rxu::decay_t<SourceOperator> rxcpp::observable< T, SourceOperator >::source_operator_type |
typedef T rxcpp::observable< T, SourceOperator >::value_type |
|
inline |
|
inline |
|
inlineexplicit |
|
inlineexplicit |
|
inline |
implicit conversion between observables of the same value_type
|
inline |
implicit conversion between observables of the same value_type
|
inline |
For each item from this observable use Accumulator to combine items, when completed use ResultSelector to produce a value that will be emitted from the new observable that is returned.
Seed | the type of the initial value for the accumulator |
Accumulator | the type of the data accumulating function |
ResultSelector | the type of the result producing function |
seed | the initial value for the accumulator |
a | an accumulator function to be invoked on each item emitted by the source observable, the result of which will be used in the next accumulator call |
rs | a result producing function that makes the final value from the last accumulator call result |
Some basic reduce-type operators have already been implemented:
|
inline |
Returns an Observable that emits true if every item emitted by the source Observable satisfies a specified condition, otherwise false. Emits true if the source Observable terminates without emitting any item.
Predicate | the type of the test function. |
p | the test function to test items emitted by the source Observable. |
|
inline |
For each item from only the first of the given observables deliver from the new observable that is returned, on the specified scheduler.
There are 2 variants of the operator:
Coordination | the type of the scheduler (optional). |
Value0 | ... (optional). |
ValueN | types of source observables (optional). |
cn | the scheduler to synchronize sources from different contexts (optional). |
v0 | ... (optional). |
vn | source observables (optional). |
If scheduler is omitted, identity_current_thread is used.
|
inline |
Returns an Observable that emits true if any item emitted by the source Observable satisfies a specified condition, otherwise false. Emits false if the source Observable terminates without emitting any item.
Predicate | the type of the test function. |
p | the test function to test items emitted by the source Observable. |
Some basic any- operators have already been implemented:
|
inline |
Return a new observable that contains the blocking methods for this observable.
|
inline |
Return a new observable that performs type-forgetting conversion of this observable.
|
inline |
For each item from this observable reduce it by adding to the previous values and then dividing by the number of items at the end.
|
inline |
Return an observable that emits connected, non-overlapping buffer, each containing at most count items from the source observable. If the skip parameter is set, return an observable that emits buffers every skip items containing at most count items from the source observable.
count | the maximum size of each buffers before it should be emitted. |
skip | how many items need to be skipped before starting a new buffers (optional). |
|
inline |
Return an observable that emits buffers every period time interval and collects items from this observable for period of time into each produced buffer. If the skip parameter is set, Return an observable that emits buffers every skip time interval and collects items from this observable for period of time into each produced buffer, on the specified scheduler.
Duration | the type of the time interval |
Coordination | the type of the scheduler (optional). |
period | the period of time each buffer collects items before it is emitted. |
skip | the period of time after which a new buffer will be created (optional). |
coordination | the scheduler for the buffers (optional). |
|
inline |
Return an observable that emits connected, non-overlapping buffers of items from the source observable that were emitted during a fixed duration of time or when the buffer has reached maximum capacity (whichever occurs first), on the specified scheduler.
Duration | the type of the time interval. |
Coordination | the type of the scheduler (optional). |
period | the period of time each buffer collects items before it is emitted and replaced with a new buffer. |
count | the maximum size of each buffer before it is emitted and new buffer is created. |
coordination | the scheduler for the buffers (optional). |
|
inline |
For each item from all of the observables select a value to emit from the new observable that is returned.
AN | types of scheduler (optional), aggregate function (optional), and source observables |
an | scheduler (optional), aggregation function (optional), and source observables |
If scheduler is omitted, identity_current_thread is used.
If aggregation function is omitted, the resulting observable returns tuples of emitted items.
Neither scheduler nor aggregation function are present:
Only scheduler is present:
Only aggregation function is present:
Both scheduler and aggregation function are present:
|
inline |
For each item from this observable subscribe to one at a time, in the order received. For each item from all of the given observables deliver from the new observable that is returned.
There are 2 variants of the operator:
Coordination | the type of the scheduler (optional). |
Value0 | ... (optional). |
ValueN | types of source observables (optional). |
cn | the scheduler to synchronize sources from different contexts (optional). |
v0 | ... (optional). |
vn | source observables (optional). |
|
inline |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned.
CollectionSelector | the type of the observable producing function. CollectionSelector must be a function with the signature: observable(concat_map::source_value_type) |
ResultSelector | the type of the aggregation function (optional). ResultSelector must be a function with the signature: concat_map::value_type(concat_map::source_value_type, concat_map::collection_value_type) |
Coordination | the type of the scheduler (optional). |
s | a function that returns an observable for each item emitted by the source observable. |
rs | a function that combines one item emitted by each of the source and collection observables and returns an item to be emitted by the resulting observable (optional). |
cn | the scheduler to synchronize sources from different contexts. (optional). |
Observables, produced by the CollectionSelector, are concatenated. There is another operator rxcpp::observable<T,SourceType>::flat_map that works similar but merges the observables.
|
inline |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned.
CollectionSelector | the type of the observable producing function. CollectionSelector must be a function with the signature: observable(concat_map::source_value_type) |
ResultSelector | the type of the aggregation function (optional). ResultSelector must be a function with the signature: concat_map::value_type(concat_map::source_value_type, concat_map::collection_value_type) |
Coordination | the type of the scheduler (optional). |
s | a function that returns an observable for each item emitted by the source observable. |
rs | a function that combines one item emitted by each of the source and collection observables and returns an item to be emitted by the resulting observable (optional). |
cn | the scheduler to synchronize sources from different contexts. (optional). |
Observables, produced by the CollectionSelector, are concatenated. There is another operator rxcpp::observable<T,SourceType>::flat_map that works similar but merges the observables.
|
inline |
Returns an Observable that emits true if the source Observable emitted a specified item, otherwise false. Emits false if the source Observable terminates without emitting any item.
T | the type of the item to search for. |
value | the item to search for. |
|
inline |
For each item from this observable reduce it by incrementing a count.
|
inline |
Return an observable that emits an item if a particular timespan has passed without emitting another item from the source observable.
Duration | the type of the time interval |
Coordination | the type of the scheduler |
period | the period of time to suppress any emitted items |
coordination | the scheduler to manage timeout for each event |
|
inline |
If the source Observable terminates without emitting any items, emits a default item and completes.
Value | the type of the value to emit. |
v | the default value to emit. |
|
inline |
Return an observable that emits each item emitted by the source observable after the specified delay.
Duration | the type of time interval |
Coordination | the type of the scheduler |
period | the period of time each item is delayed |
coordination | the scheduler for the delays |
|
inline |
For each item from this observable, filter out repeated values and emit only items that have not already been emitted.
|
inline |
For each item from this observable, filter out consequentially repeated values and emit only changes from the new observable that is returned.
BinaryPredicate | (optional) the type of the value comparing function. The signature should be equivalent to the following: bool pred(const T1& a, const T2& b); |
pred | (optional) the function that implements comparison of two values. |
|
inline |
Pulls an item located at a specified index location in the sequence of items and emits that item as its own sole emission.
index | the index of the element to return. |
|
inline |
Returns an Observable that emits true if any item emitted by the source Observable satisfies a specified condition, otherwise false. Emits false if the source Observable terminates without emitting any item.
Predicate | the type of the test function. |
p | the test function to test items emitted by the source Observable. |
|
inline |
For each item from this observable use Predicate to select which items to emit from the new observable that is returned.
Predicate | the type of the filter function |
p | the filter function |
|
inline |
Add a new action at the end of the new observable that is returned.
LastCall | the type of the action function |
lc | the action function |
|
inline |
For each item from this observable reduce it by sending only the first item.
|
inline |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned.
CollectionSelector | the type of the observable producing function. CollectionSelector must be a function with the signature observable(flat_map::source_value_type) |
ResultSelector | the type of the aggregation function (optional). ResultSelector must be a function with the signature flat_map::value_type(flat_map::source_value_type, flat_map::collection_value_type). |
Coordination | the type of the scheduler (optional). |
s | a function that returns an observable for each item emitted by the source observable. |
rs | a function that combines one item emitted by each of the source and collection observables and returns an item to be emitted by the resulting observable (optional). |
cn | the scheduler to synchronize sources from different contexts (optional). |
Observables, produced by the CollectionSelector, are merged. There is another operator rxcpp::observable<T,SourceType>::flat_map that works similar but concatenates the observables.
|
inline |
Return an observable that emits grouped_observables, each of which corresponds to a unique key value and each of which emits those items from the source observable that share that key value.
KeySelector | the type of the key extracting function |
MarbleSelector | the type of the element extracting function |
BinaryPredicate | the type of the key comparing function |
ks | a function that extracts the key for each item (optional) |
ms | a function that extracts the return element for each item (optional) |
p | a function that implements comparison of two keys (optional) |
|
inline |
Do not emit any items from the source Observable, but allow termination notification (either onError or onCompleted) to pass through unchanged.
|
inline |
Returns an Observable that emits true if the source Observable is empty, otherwise false.
|
inline |
For each item from this observable reduce it by sending only the last item.
|
inline |
For each item from this observable use Selector to produce an item to emit from the new observable that is returned.
Selector | the type of the transforming function |
s | the selector function |
|
inline |
For each item from this observable reduce it by taking the max value of the previous items.
|
inline |
For each given observable subscribe. For each item emitted from all of the given observables, deliver from the new observable that is returned.
There are 2 variants of the operator:
Coordination | the type of the scheduler (optional). |
Value0 | ... (optional). |
ValueN | types of source observables (optional). |
cn | the scheduler to synchronize sources from different contexts (optional). |
v0 | ... (optional). |
vn | source observables (optional). |
If scheduler is omitted, identity_current_thread is used.
|
inline |
For each item from this observable use the CollectionSelector to produce an observable and subscribe to that observable. For each item from all of the produced observables use the ResultSelector to produce a value to emit from the new observable that is returned.
CollectionSelector | the type of the observable producing function. CollectionSelector must be a function with the signature observable(flat_map::source_value_type) |
ResultSelector | the type of the aggregation function (optional). ResultSelector must be a function with the signature flat_map::value_type(flat_map::source_value_type, flat_map::collection_value_type). |
Coordination | the type of the scheduler (optional). |
s | a function that returns an observable for each item emitted by the source observable. |
rs | a function that combines one item emitted by each of the source and collection observables and returns an item to be emitted by the resulting observable (optional). |
cn | the scheduler to synchronize sources from different contexts (optional). |
Observables, produced by the CollectionSelector, are merged. There is another operator rxcpp::observable<T,SourceType>::flat_map that works similar but concatenates the observables.
|
inline |
For each item from this observable reduce it by taking the min value of the previous items.
|
inline |
|
inline |
All values are queued and delivered using the scheduler from the supplied coordination.
Coordination | the type of the scheduler. |
cn | the scheduler to notify observers on. |
|
inline |
If an error occurs, take the result from the Selector and subscribe to that instead.
Selector | the actual type of a function of the form observable<T>(std::exception_ptr) |
s | the function of the form observable<T>(std::exception_ptr) |
|
inline |
Take values pairwise from this observable.
|
inline |
Turn a cold observable hot and allow connections to the source to be independent of subscriptions. Turn a cold observable hot, send the most recent value to any new subscriber, and allow connections to the source to be independent of subscriptions.
T | the type of the emitted item (optional). |
first | an initial item to be emitted by the resulting observable at connection time before emitting the items from the source observable; not emitted to observers that subscribe after the time of connection (optional). |
cs | the subscription to control lifetime (optional). |
|
inline |
Turn a cold observable hot and allow connections to the source to be independent of subscriptions.
Coordination | the type of the scheduler. |
cn | a scheduler all values are queued and delivered on. |
cs | the subscription to control lifetime (optional). |
|
inline |
For each item from this observable use Accumulator to combine items, when completed use ResultSelector to produce a value that will be emitted from the new observable that is returned.
Seed | the type of the initial value for the accumulator |
Accumulator | the type of the data accumulating function |
ResultSelector | the type of the result producing function |
seed | the initial value for the accumulator |
a | an accumulator function to be invoked on each item emitted by the source observable, the result of which will be used in the next accumulator call |
rs | a result producing function that makes the final value from the last accumulator call result |
Some basic reduce-type operators have already been implemented:
|
inline |
Repeat this observable for the given number of times or infinitely.
Count | the type of the counter (optional). |
t | The number of times the source observable items are repeated (optional). If not specified, infinitely repeats the source observable. Specifying 0 returns an empty sequence immediately |
|
inline |
1) replay(optional Coordination, optional CompositeSubscription) Turn a cold observable hot, send all earlier emitted values to any new subscriber, and allow connections to the source to be independent of subscriptions.
2) replay(Count, optional Coordination, optional CompositeSubscription) Turn a cold observable hot, send at most count of earlier emitted values to any new subscriber, and allow connections to the source to be independent of subscriptions.
3) replay(Duration, optional Coordination, optional CompositeSubscription) Turn a cold observable hot, send values emitted within a specified time window to any new subscriber, and allow connections to the source to be independent of subscriptions.
4) replay(Count, Duration, optional Coordination, optional CompositeSubscription) Turn a cold observable hot, send at most count of values emitted within a specified time window to any new subscriber, and allow connections to the source to be independent of subscriptions.
Duration | the type of the time interval (optional). |
Count | the type of the maximum number of the most recent items sent to new observers (optional). |
Coordination | the type of the scheduler (optional). |
count | the maximum number of the most recent items sent to new observers (optional). |
d | the duration of the window in which the replayed items must be emitted |
cn | a scheduler all values are queued and delivered on (optional). |
cs | the subscription to control lifetime (optional). |
|
inline |
Retry this observable for the given number of times.
Count | the type of the counter (optional) |
t | the total number of tries (optional), i.e. retry(2) means one normal try, before an error occurs, and one retry. If not specified, infinitely retries the source observable. Specifying 0 returns immediately without subscribing |
|
inline |
Return an Observable that emits the most recent items emitted by the source Observable within periodic time intervals.
Duration | the type of time interval. |
Coordination | the type of the scheduler (optional). |
period | the period of time to sample the source observable. |
coordination | the scheduler for the items (optional). |
|
inline |
For each item from this observable use Accumulator to combine items into a value that will be emitted from the new observable that is returned.
Seed | the type of the initial value for the accumulator. |
Accumulator | the type of the data accumulating function. |
seed | the initial value for the accumulator. |
a | an accumulator function to be invoked on each item emitted by the source observable, whose result will be emitted and used in the next accumulator call. |
|
inline |
Determine whether two Observables emit the same sequence of items.
OtherSource | the type of the other observable. |
BinaryPredicate | the type of the value comparing function (optional). The signature should be equivalent to the following: bool pred(const T1& a, const T2& b); |
Coordination | the type of the scheduler (optional). |
t | the other Observable that emits items to compare. |
pred | the function that implements comparison of two values (optional). |
cn | the scheduler (optional). |
|
inline |
Make new observable with skipped first count items from this observable.
Count | the type of the items counter |
t | the number of items to skip |
|
inline |
Make new observable with skipped last count items from this observable.
Count | the type of the items counter. |
t | the number of last items to skip. |
|
inline |
Make new observable with items skipped until on_next occurs on the trigger observable or until the specified time. skip_until takes (TriggerObservable, optional Coordination) or (TimePoint, optional Coordination)
TriggerSource | the type of the trigger observable. |
Coordination | the type of the scheduler (optional). |
t | an observable that has to emit an item before the source observable's elements begin to be mirrored by the resulting observable. |
cn | the scheduler to use for scheduling the items (optional). |
|
inline |
Start with the supplied values, then concatenate this observable.
Value0 | ... |
ValueN | the type of sending values |
v0 | ... |
vn | values to send |
|
inline |
Subscribe will cause the source observable to emit values to the provided subscriber.
ArgN | types of the subscriber parameters |
an | the parameters for making a subscriber |
The arguments of subscribe are forwarded to rxcpp::make_subscriber function. Some possible alternatives are:
on_next
handler: on_next
and on_error
handlers: on_next
and on_completed
handlers: on_next
, on_error
, and on_completed
handlers: All the alternatives above also support passing rxcpp::composite_subscription instance. For example:
If neither subscription nor subscriber are provided, then a new subscription is created and returned as a result:
For more details, see rxcpp::make_subscriber function description.
|
inline |
Subscription and unsubscription are queued and delivered using the scheduler from the supplied coordination.
Coordination | the type of the scheduler. |
cn | the scheduler to perform subscription actions on. |
|
inline |
For each item from this observable reduce it by adding to the previous items.
|
inline |
If the source Observable terminates without emitting any items, emits items from a backup Observable.
BackupSource | the type of the backup observable. |
t | a backup observable that is used if the source observable is empty. |
|
inline |
If an error occurs, take the result from the Selector and subscribe to that instead.
Selector | the actual type of a function of the form observable<T>(std::exception_ptr) |
s | the function of the form observable<T>(std::exception_ptr) |
|
inline |
Return observable that emits the items emitted by the observable most recently emitted by the source observable.
Coordination | the type of the scheduler (optional). |
cn | the scheduler to synchronize sources from different contexts (optional). |
|
inline |
For the first count items from this observable emit them from the new observable that is returned.
Count | the type of the items counter. |
t | the number of items to take. |
|
inline |
Emit only the final t items emitted by the source Observable.
Count | the type of the items counter. |
t | the number of last items to take. |
|
inline |
For each item from this observable until on_next occurs on the trigger observable or until the specified time, emit them from the new observable that is returned. take_until takes (TriggerObservable, optional Coordination) or (TimePoint, optional Coordination)
TriggerSource | the type of the trigger observable. |
TimePoint | the type of the time interval. |
Coordination | the type of the scheduler (optional). |
t | an observable whose first emitted item will stop emitting items from the source observable. |
when | a time point when the returned observable will stop emitting items. |
cn | the scheduler to use for scheduling the items (optional). |
|
inline |
For the first items fulfilling the predicate from this observable emit them from the new observable that is returned.
Predicate | the type of the predicate |
t | the predicate |
|
inline |
inspect calls to on_next, on_error and on_completed.
MakeObserverArgN... | these args are passed to make_observer. |
an | these args are passed to make_observer. |
|
inline |
Returns an observable that emits indications of the amount of time lapsed between consecutive emissions of the source observable. The first emission from this new Observable indicates the amount of time lapsed between the time when the observer subscribed to the Observable and the time when the source Observable emitted its first item.
Coordination | the type of the scheduler. |
coordination | the scheduler for time intervals. |
|
inline |
Return an observable that terminates with timeout_error if a particular timespan has passed without emitting another item from the source observable.
Duration | the type of time interval. |
Coordination | the type of the scheduler (optional). |
period | the period of time wait for another item from the source observable. |
coordination | the scheduler to manage timeout for each event (optional). |
|
inline |
Returns an observable that attaches a timestamp to each item emitted by the source observable indicating when it was emitted.
Coordination | the type of the scheduler (optional). |
coordination | the scheduler to manage timeout for each event (optional). |
|
inline |
For each item from this observable use Selector to produce an item to emit from the new observable that is returned.
Selector | the type of the transforming function |
s | the selector function |
|
inline |
Return an observable that emits connected, non-overlapping windows, each containing at most count items from the source observable. If the skip parameter is set, return an observable that emits windows every skip items containing at most count items from the source observable.
count | the maximum size of each window before it should be completed |
skip | how many items need to be skipped before starting a new window |
|
inline |
Return an observable that emits observables every period time interval and collects items from this observable for period of time into each produced observable, on the specified scheduler.
Openings | observable<OT> |
ClosingSelector | a function of type observable<CT>(OT) |
Coordination | the type of the scheduler (optional). |
opens | each value from this observable opens a new window. |
closes | this function is called for each opened window and returns an observable. the first value from the returned observable will close the window. |
coordination | the scheduler for the windows (optional). |
|
inline |
Return an observable that emits observables every period time interval and collects items from this observable for period of time into each produced observable, on the specified scheduler. If the skip parameter is set, return an observable that emits observables every skip time interval and collects items from this observable for period of time into each produced observable, on the specified scheduler.
Duration | the type of time intervals. |
Coordination | the type of the scheduler (optional). |
period | the period of time each window collects items before it is completed. |
skip | the period of time after which a new window will be created. |
coordination | the scheduler for the windows (optional). |
|
inline |
Return an observable that emits connected, non-overlapping windows of items from the source observable that were emitted during a fixed duration of time or when the window has reached maximum capacity (whichever occurs first), on the specified scheduler.
Duration | the type of time intervals. |
Coordination | the type of the scheduler (optional). |
period | the period of time each window collects items before it is completed and replaced with a new window. |
count | the maximum size of each window before it is completed and new window is created. |
coordination | the scheduler for the windows (optional). |
|
inline |
For each item from the first observable select the latest value from all the observables to emit from the new observable that is returned.
AN | types of scheduler (optional), aggregate function (optional), and source observables |
an | scheduler (optional), aggregation function (optional), and source observables |
If scheduler is omitted, identity_current_thread is used.
If aggregation function is omitted, the resulting observable returns tuples of emitted items.
Neither scheduler nor aggregation function are present:
Only scheduler is present:
Only aggregation function is present:
Both scheduler and aggregation function are present:
|
inline |
Bring by one item from all given observables and select a value to emit from the new observable that is returned.
AN | types of scheduler (optional), aggregate function (optional), and source observables |
an | scheduler (optional), aggregation function (optional), and source observables |
If scheduler is omitted, identity_current_thread is used.
If aggregation function is omitted, the resulting observable returns tuples of emitted items.
Neither scheduler nor aggregation function are present:
Only scheduler is present:
Only aggregation function is present:
Both scheduler and aggregation function are present:
|
friend |
|
friend |
|
mutable |