Skip to main content

dope_runtime/process/
watch.rs

1use o3::base::time::Positive;
2
3/// Main-process notification performed after every required worker is ready.
4pub trait Notify {
5    type Error;
6    type Heartbeat: Heartbeat<Self::Error>;
7
8    fn ready(self) -> Result<Self::Heartbeat, Self::Error>;
9}
10
11/// Explicit steady-state watch owned by the process manager.
12pub trait Heartbeat<E> {
13    fn period(&self) -> Positive;
14    fn pulse(&self) -> Result<(), E>;
15
16    fn draining(&self) -> Result<(), E>;
17}