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...
Go to the source code of this file.
|  | 
| template<class... AN> | 
| auto | rxcpp::operators::take_until (AN &&...an) -> operator_factory< take_until_tag, AN... > | 
|  | 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... 
 | 
|  | 
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) 
- Template Parameters
- 
  
    | TriggerSource | the type of the trigger observable. |  | TimePoint | the type of the time interval. |  | Coordination | the type of the scheduler (optional). |  
 
- Parameters
- 
  
    | 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). |  
 
- Returns
- An observable that emits the items emitted by the source observable until trigger observable emitted or the time runs out.
- Sample Code
-     auto values = source.take_until(trigger); -     values. -             [](long v){printf("OnNext: %ld\n", v);}, -             [](){printf("OnCompleted\n");}); 
- OnNext: 1 - OnNext: 2 - OnNext: 3 - OnCompleted 
- Sample Code
-     printf("[thread %s] Start task\n", get_pid().c_str()); -         printf("[thread %s] Source emits, value = %ld\n", get_pid().c_str(), v); -         return v; -     }); -         printf("[thread %s] Trigger emits, value = %ld\n", get_pid().c_str(), v); -         return v; -     }); -     values. -             [](long v){printf("[thread %s] OnNext: %ld\n", get_pid().c_str(), v);}, -             [](){printf("[thread %s] OnCompleted\n", get_pid().c_str());}); -     printf("[thread %s] Finish task\n", get_pid().c_str()); 
- [thread 47481267428736] Start task - [thread 47481267428736] Source emits, value = 1 - [thread 47481313687296] OnNext: 1 - [thread 47481267428736] Source emits, value = 2 - [thread 47481313687296] OnNext: 2 - [thread 47481267428736] Source emits, value = 3 - [thread 47481313687296] OnNext: 3 - [thread 47481267428736] Trigger emits, value = 1 - [thread 47481313687296] OnCompleted - [thread 47481267428736] Finish task 
- Sample Code
-     auto values = source.take_until(std::chrono::steady_clock::now() + std::chrono::milliseconds(25)); -     values. -             [](long v){printf("OnNext: %ld\n", v);}, -             [](){printf("OnCompleted\n");}); 
- OnNext: 1 - OnNext: 2 - OnNext: 3 - OnCompleted 
- Sample Code
-     printf("[thread %s] Start task\n", get_pid().c_str()); -         printf("[thread %s] Source emits, value = %ld\n", get_pid().c_str(), v); -         return v; -     }); -     auto values = source.take_until(scheduler.now() + std::chrono::milliseconds(25), scheduler); -     values. -             [](long v){printf("[thread %s] OnNext: %ld\n", get_pid().c_str(), v);}, -             [](){printf("[thread %s] OnCompleted\n", get_pid().c_str());}); -     printf("[thread %s] Finish task\n", get_pid().c_str()); 
- [thread 47481267428736] Start task - [thread 47481267428736] Source emits, value = 1 - [thread 47481313687296] OnNext: 1 - [thread 47481267428736] Source emits, value = 2 - [thread 47481313687296] OnNext: 2 - [thread 47481267428736] Source emits, value = 3 - [thread 47481313687296] OnNext: 3 - [thread 47481313687296] OnCompleted - [thread 47481267428736] Finish task 
      
        
          | #define RXCPP_OPERATORS_RX_TAKE_UNTIL_HPP |