5 #if !defined(RXCPP_RX_OPERATORS_HPP) 6 #define RXCPP_RX_OPERATORS_HPP 24 template<
class T,
class =rxu::types_checked>
31 : std::is_convertible<typename T::operator_tag*, tag_operator*>
37 template<
class T,
class Decayed = rxu::decay_t<T>>
44 namespace rxo=operators;
51 typename Tag::template include_header<std::false_type> {
52 return typename Tag::template include_header<std::false_type>();
56 template<
class T,
class...
AN>
59 template<
class T,
class...
AN>
64 decltype(Overload::member(std::forward<AN>(an)...)) {
65 return Overload::member(std::forward<AN>(an)...);
68 template<
class Tag,
class...
AN>
73 using tuple_type = std::tuple<rxu::decay_t<AN>...>;
89 template<
class Observable>
91 -> decltype(rxu::apply(std::tuple_cat(std::make_tuple(tag_type{},
source), (*(tuple_type*)
nullptr)), (*(
this_type*)
nullptr))) {
92 return rxu::apply(std::tuple_cat(std::make_tuple(tag_type{}, source), an), *
this);
104 template<
class Included>
106 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-amb.hpp>");
111 template<
class Included>
113 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-all.hpp>");
120 template<
class Included>
122 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-any.hpp>");
130 template<
class Included>
132 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-buffer_count.hpp>");
137 template<
class Included>
139 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-buffer_time.hpp>");
144 template<
class Included>
146 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-buffer_time_count.hpp>");
151 template<
class Included>
153 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-combine_latest.hpp>");
158 template<
class Included>
160 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-concat.hpp>");
165 template<
class Included>
167 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-concat_map.hpp>");
172 template<
class Included>
174 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-connect_forever.hpp>");
179 template<
class Included>
181 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-debounce.hpp>");
186 template<
class Included>
188 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-delay.hpp>");
193 template<
class Included>
195 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-distinct.hpp>");
200 template<
class Included>
202 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-distinct_until_changed.hpp>");
207 template<
class Included>
209 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-element_at.hpp>");
214 template<
class Included>
216 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-filter.hpp>");
221 template<
class Included>
223 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-finally.hpp>");
228 template<
class Included>
230 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-flat_map.hpp>");
235 template<
class Included>
237 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-group_by.hpp>");
242 template<
class Included>
244 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-ignore_elements.hpp>");
249 template<
class Included>
251 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-map.hpp>");
256 template<
class Included>
258 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-merge.hpp>");
263 template<
class Included>
265 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-multicast.hpp>");
270 template<
class Included>
272 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-observe_on.hpp>");
277 template<
class Included>
279 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-on_error_resume_next.hpp>");
287 std::runtime_error(msg)
291 template<
class Included>
293 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-reduce.hpp>");
304 template<
class Included>
306 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-ref_count.hpp>");
311 template<
class Included>
313 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-pairwise.hpp>");
318 template<
class Included>
320 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-publish.hpp>");
326 template<
class Included>
328 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-repeat.hpp>");
333 template<
class Included>
335 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-replay.hpp>");
340 template<
class Included>
342 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-retry.hpp>");
347 template<
class Included>
349 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-sample_time.hpp>");
354 template<
class Included>
356 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-scan.hpp>");
361 template<
class Included>
363 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-sequence_equal.hpp>");
368 template<
class Included>
370 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-skip.hpp>");
375 template<
class Included>
377 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-skip_last.hpp>");
382 template<
class Included>
384 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-skip_until.hpp>");
389 template<
class Included>
391 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-start_with.hpp>");
396 template<
class Included>
398 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-subscribe_on.hpp>");
403 template<
class Included>
405 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-switch_if_empty.hpp>");
411 template<
class Included>
413 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-switch_on_next.hpp>");
418 template<
class Included>
420 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-take.hpp>");
425 template<
class Included>
427 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-take_last.hpp>");
432 template<
class Included>
434 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-take_while.hpp>");
439 template<
class Included>
441 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-take_until.hpp>");
446 template<
class Included>
448 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-rap.hpp>");
453 template<
class Included>
455 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-timeout.hpp>");
460 template<
class Included>
462 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-time_interval.hpp>");
467 template<
class Included>
469 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-timestamp.hpp>");
474 template<
class Included>
476 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-window.hpp>");
481 template<
class Included>
483 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-window_time.hpp>");
488 template<
class Included>
490 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-window_time_count.hpp>");
495 template<
class Included>
497 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-window_toggle.hpp>");
502 template<
class Included>
504 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-with_latest_from.hpp>");
509 template<
class Included>
511 static_assert(Included::value,
"missing include: please #include <rxcpp/operators/rx-zip.hpp>");
Definition: rx-operators.hpp:126
Definition: rx-operators.hpp:360
Definition: rx-operators.hpp:171
Definition: rx-operators.hpp:248
Definition: rx-operators.hpp:143
Subscribe will cause the source observable to emit values to the provided subscriber.
Definition: rx-operators.hpp:374
Definition: rx-operators.hpp:445
Definition: rx-all.hpp:26
empty_error(const std::string &msg)
Definition: rx-operators.hpp:286
typename std::decay< T >::type::value_type value_type_t
Definition: rx-util.hpp:35
operator_factory(tuple_type an)
Definition: rx-operators.hpp:78
Definition: rx-operators.hpp:323
Definition: rx-operators.hpp:431
Definition: rx-operators.hpp:157
Definition: rx-operators.hpp:276
Definition: rx-operators.hpp:283
Definition: rx-operators.hpp:69
Definition: rx-operators.hpp:290
Definition: rx-operators.hpp:303
Definition: rx-operators.hpp:346
Definition: rx-operators.hpp:408
Definition: rx-operators.hpp:487
Definition: rx-operators.hpp:381
rxu::value_type_t< delayed_type< T, AN... >> delayed_type_t
Definition: rx-operators.hpp:60
Definition: rx-operators.hpp:459
Definition: rx-operators.hpp:325
Definition: rx-operators.hpp:234
auto AN
Definition: rx-finally.hpp:105
Definition: rx-operators.hpp:255
static auto member(AN &&...) -> typename Tag::template include_header< std::false_type >
Definition: rx-operators.hpp:50
Definition: rx-operators.hpp:199
Definition: rx-operators.hpp:508
Definition: rx-operators.hpp:339
auto operator()(Observable source) const -> decltype(rxu::apply(std::tuple_cat(std::make_tuple(tag_type
Definition: rx-operators.hpp:90
typename std::decay< T >::type decay_t
Definition: rx-util.hpp:36
Definition: rx-operators.hpp:47
Definition: rx-operators.hpp:367
Definition: rx-operators.hpp:310
Definition: rx-operators.hpp:438
Definition: rx-operators.hpp:298
Definition: rx-operators.hpp:296
Definition: rx-operators.hpp:227
auto operator()(tag_type t, ZN &&...zn) const -> decltype(observable_member(t, std::forward< ZN >(zn)...))
Definition: rx-operators.hpp:84
Definition: rx-operators.hpp:241
Definition: rx-operators.hpp:117
Definition: rx-operators.hpp:213
Definition: rx-operators.hpp:417
Definition: rx-operators.hpp:38
Definition: rx-operators.hpp:262
Definition: rx-operators.hpp:129
Definition: rx-operators.hpp:424
Definition: rx-operators.hpp:353
Definition: rx-operators.hpp:466
Definition: rx-operators.hpp:136
Definition: rx-operators.hpp:206
Definition: rx-operators.hpp:297
T value_type
Definition: rx-operators.hpp:18
Definition: rx-operators.hpp:192
Definition: rx-operators.hpp:103
source
Definition: rx-operators.hpp:91
Definition: rx-operators.hpp:473
Definition: rx-operators.hpp:110
Definition: rx-operators.hpp:57
takes any function that will take a subscriber for this observable and produce a subscriber. this is intended to allow externally defined operators, that use make_subscriber, to be connected into the expression.
Definition: rx-operators.hpp:14
Definition: rx-operators.hpp:301
Definition: rx-operators.hpp:220
Definition: rx-operators.hpp:185
Definition: rx-operators.hpp:452
Definition: rx-operators.hpp:269
typename types_checked_from< TN... >::type types_checked_t
Definition: rx-util.hpp:164
Definition: rx-operators.hpp:480
Definition: rx-operators.hpp:150
Definition: rx-operators.hpp:332
Definition: rx-operators.hpp:16
auto observable_member(Tag, AN &&...an) -> decltype(Overload::member(std::forward< AN >(an)...))
Definition: rx-operators.hpp:63
Definition: rx-operators.hpp:164
Definition: rx-operators.hpp:317
Definition: rx-operators.hpp:494
Definition: rx-operators.hpp:410
Definition: rx-operators.hpp:119
Definition: rx-operators.hpp:300
Turn a cold observable hot and allow connections to the source to be independent of subscriptions...
Definition: rx-operators.hpp:178
tag_operator operator_tag
Definition: rx-operators.hpp:19
takes a connectable_observable source and uses a ref_count of the subscribers to control the connecti...
Definition: rx-operators.hpp:299
Definition: rx-operators.hpp:127
Definition: rx-operators.hpp:402
allows connections to the source to be independent of subscriptions.
Definition: rx-operators.hpp:395
T value_type
Definition: rx-operators.hpp:57
Definition: rx-operators.hpp:388
Definition: rx-operators.hpp:501