Struct tokio_periodic::PeriodicTimer [] [src]

pub struct PeriodicTimer { /* fields omitted */ }

Asynchronous, cross-platform periodic timer

This timer, when reset for the first time will become ready to poll every specified interval until it is dropped or reset again.

Example

PeriodicTimer implements futures::stream::Stream and therefore interoperates with other futures well. In this example PeriodicTimer is used to print integers every second:

extern crate futures;
extern crate tokio_core;
extern crate tokio_periodic;

let mut core = tokio_core::reactor::Core::new().unwrap();
let handle = core.handle();
let timer = tokio_periodic::PeriodicTimer::new(&handle).unwrap();
timer.reset(::std::time::Duration::new(1, 0));
let digits = futures::stream::unfold(1, |v| if v < 3 { // for demonstration purposes stop at 3
    Some(futures::future::ok((v, v + 1)))
} else {
    None
});
let mut timer_stream = futures::Stream::zip(timer, digits);
while let Ok((Some(item), stream)) = core.run(futures::Stream::into_future(timer_stream)) {
    println!("{:?}", item);
    timer_stream = stream;
}

Methods

impl PeriodicTimer
[src]

Create a new PeriodicTimer associated with specified event loop handle

Reset the timer to specified interval

The previously active timer, if any, is cancelled before the new one is set. Once this method returns, this timer will become ready to poll every interval duration.

Due to some platforms not supporting nanosecond precision the interval duration is rounded up to the nearest precision supported by the platform.

If the interval is zero-duration, the timer is deactivated.

Errors

In addition to the errors which may occur when interacting with system APIs, an error condition may also occur when interval duration exceeds the maximum duration that can be specified to the system.

Trait Implementations

impl Stream for PeriodicTimer
[src]

The type of item this stream will yield on success.

The type of error this stream may generate.

Poll the timer

If the timer has fired at least once since previous call to poll or reset, this resolves to a number of times the timer has fired.

Creates an iterator which blocks the current thread until each item of this stream is resolved. Read more

Convenience function for turning this stream into a trait object. Read more

Converts this stream into a Future. Read more

Converts a stream of type T to a stream of type U. Read more

Converts a stream of error type T to a stream of error type U. Read more

Filters the values produced by this stream according to the provided predicate. Read more

Filters the values produced by this stream while simultaneously mapping them to a different type. Read more

Chain on a computation for when a value is ready, passing the resulting item to the provided closure f. Read more

Chain on a computation for when a value is ready, passing the successful results to the provided closure f. Read more

Chain on a computation for when an error happens, passing the erroneous result to the provided closure f. Read more

Collect all of the values of this stream into a vector, returning a future representing the result of that computation. Read more

Concatenate all results of a stream into a single extendable destination, returning a future representing the end result. Read more

Deprecated since 0.1.14

: please use Stream::concat2 instead

Concatenate all results of a stream into a single extendable destination, returning a future representing the end result. Read more

Execute an accumulating computation over a stream, collecting all the values into one final result. Read more

Flattens a stream of streams into just one continuous stream. Read more

Skip elements on this stream while the predicate provided resolves to true. Read more

Take elements from this stream while the predicate provided resolves to true. Read more

Runs this stream to completion, executing the provided closure for each element on the stream. Read more

Map this stream's error to any error implementing From for this stream's Error, returning a new stream. Read more

Creates a new stream of at most amt items of the underlying stream. Read more

Creates a new stream which skips amt items of the underlying stream. Read more

Fuse a stream such that poll will never again be called once it has finished. Read more

Borrows a stream, rather than consuming it. Read more

Catches unwinding panics while polling the stream. Read more

An adaptor for creating a buffered list of pending futures. Read more

An adaptor for creating a buffered list of pending futures (unordered). Read more

An adapter for merging the output of two streams. Read more

An adapter for zipping two streams together. Read more

Adapter for chaining two stream. Read more

Creates a new stream which exposes a peek method. Read more

An adaptor for chunking up items of the stream inside a vector. Read more

Creates a stream that selects the next element from either this stream or the provided one, whichever is ready first. Read more

A future that completes after the given stream has been fully processed into the sink, including flushing. Read more

Splits this Stream + Sink object into separate Stream and Sink objects. Read more