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]
fn new(handle: &Handle) -> Result<PeriodicTimer>
Create a new PeriodicTimer
associated with specified event loop handle
fn reset(&self, interval: Duration) -> Result<()>
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]
type Item = u64
The type of item this stream will yield on success.
type Error = Error
The type of error this stream may generate.
fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error>
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.
fn wait(self) -> Wait<Self>
Creates an iterator which blocks the current thread until each item of this stream is resolved. Read more
fn boxed(
self
) -> Box<Stream<Error = Self::Error, Item = Self::Item> + 'static + Send> where
Self: Send + 'static,
self
) -> Box<Stream<Error = Self::Error, Item = Self::Item> + 'static + Send> where
Self: Send + 'static,
Convenience function for turning this stream into a trait object. Read more
fn into_future(self) -> StreamFuture<Self>
Converts this stream into a Future
. Read more
fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnMut(Self::Item) -> U,
F: FnMut(Self::Item) -> U,
Converts a stream of type T
to a stream of type U
. Read more
fn map_err<U, F>(self, f: F) -> MapErr<Self, F> where
F: FnMut(Self::Error) -> U,
F: FnMut(Self::Error) -> U,
Converts a stream of error type T
to a stream of error type U
. Read more
fn filter<F>(self, f: F) -> Filter<Self, F> where
F: FnMut(&Self::Item) -> bool,
F: FnMut(&Self::Item) -> bool,
Filters the values produced by this stream according to the provided predicate. Read more
fn filter_map<F, B>(self, f: F) -> FilterMap<Self, F> where
F: FnMut(Self::Item) -> Option<B>,
F: FnMut(Self::Item) -> Option<B>,
Filters the values produced by this stream while simultaneously mapping them to a different type. Read more
fn then<F, U>(self, f: F) -> Then<Self, F, U> where
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture,
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture,
Chain on a computation for when a value is ready, passing the resulting item to the provided closure f
. Read more
fn and_then<F, U>(self, f: F) -> AndThen<Self, F, U> where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>,
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>,
Chain on a computation for when a value is ready, passing the successful results to the provided closure f
. Read more
fn or_else<F, U>(self, f: F) -> OrElse<Self, F, U> where
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>,
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>,
Chain on a computation for when an error happens, passing the erroneous result to the provided closure f
. Read more
fn collect(self) -> Collect<Self>
Collect all of the values of this stream into a vector, returning a future representing the result of that computation. Read more
fn concat2(self) -> Concat2<Self> where
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
Concatenate all results of a stream into a single extendable destination, returning a future representing the end result. Read more
fn concat(self) -> Concat<Self> where
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
: 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
fn fold<F, T, Fut>(self, init: T, f: F) -> Fold<Self, F, Fut, T> where
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
Execute an accumulating computation over a stream, collecting all the values into one final result. Read more
fn flatten(self) -> Flatten<Self> where
Self::Item: Stream,
<Self::Item as Stream>::Error: From<Self::Error>,
Self::Item: Stream,
<Self::Item as Stream>::Error: From<Self::Error>,
Flattens a stream of streams into just one continuous stream. Read more
fn skip_while<P, R>(self, pred: P) -> SkipWhile<Self, P, R> where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
Skip elements on this stream while the predicate provided resolves to true
. Read more
fn take_while<P, R>(self, pred: P) -> TakeWhile<Self, P, R> where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
Take elements from this stream while the predicate provided resolves to true
. Read more
fn for_each<F, U>(self, f: F) -> ForEach<Self, F, U> where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>,
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>,
Runs this stream to completion, executing the provided closure for each element on the stream. Read more
fn from_err<E>(self) -> FromErr<Self, E> where
E: From<Self::Error>,
E: From<Self::Error>,
Map this stream's error to any error implementing From
for this stream's Error
, returning a new stream. Read more
fn take(self, amt: u64) -> Take<Self>
Creates a new stream of at most amt
items of the underlying stream. Read more
fn skip(self, amt: u64) -> Skip<Self>
Creates a new stream which skips amt
items of the underlying stream. Read more
fn fuse(self) -> Fuse<Self>
Fuse a stream such that poll
will never again be called once it has finished. Read more
fn by_ref(&mut self) -> &mut Self
Borrows a stream, rather than consuming it. Read more
fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
Self: UnwindSafe,
Catches unwinding panics while polling the stream. Read more
fn buffered(self, amt: usize) -> Buffered<Self> where
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
An adaptor for creating a buffered list of pending futures. Read more
fn buffer_unordered(self, amt: usize) -> BufferUnordered<Self> where
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
An adaptor for creating a buffered list of pending futures (unordered). Read more
fn merge<S>(self, other: S) -> Merge<Self, S> where
S: Stream<Error = Self::Error>,
S: Stream<Error = Self::Error>,
An adapter for merging the output of two streams. Read more
fn zip<S>(self, other: S) -> Zip<Self, S> where
S: Stream<Error = Self::Error>,
S: Stream<Error = Self::Error>,
An adapter for zipping two streams together. Read more
fn chain<S>(self, other: S) -> Chain<Self, S> where
S: Stream<Item = Self::Item, Error = Self::Error>,
S: Stream<Item = Self::Item, Error = Self::Error>,
Adapter for chaining two stream. Read more
fn peekable(self) -> Peekable<Self>
Creates a new stream which exposes a peek
method. Read more
fn chunks(self, capacity: usize) -> Chunks<Self>
An adaptor for chunking up items of the stream inside a vector. Read more
fn select<S>(self, other: S) -> Select<Self, S> where
S: Stream<Item = Self::Item, Error = Self::Error>,
S: Stream<Item = Self::Item, Error = Self::Error>,
Creates a stream that selects the next element from either this stream or the provided one, whichever is ready first. Read more
fn forward<S>(self, sink: S) -> Forward<Self, S> where
S: Sink<SinkItem = Self::Item>,
Self::Error: From<<S as Sink>::SinkError>,
S: Sink<SinkItem = Self::Item>,
Self::Error: From<<S as Sink>::SinkError>,
A future that completes after the given stream has been fully processed into the sink, including flushing. Read more
fn split(self) -> (SplitSink<Self>, SplitStream<Self>) where
Self: Sink,
Self: Sink,
Splits this Stream + Sink
object into separate Stream
and Sink
objects. Read more