Skip to main content

CuMonitor

Trait CuMonitor 

Source
pub trait CuMonitor: Sized {
    // Required methods
    fn new(
        config: &CuConfig,
        taskids: &'static [&'static str],
    ) -> Result<Self, CuError>
       where Self: Sized;
    fn process_copperlist(
        &self,
        _ctx: &CuContext,
        msgs: &[&CuMsgMetadata],
    ) -> Result<(), CuError>;
    fn process_error(
        &self,
        taskid: usize,
        step: CuTaskState,
        error: &CuError,
    ) -> Decision;

    // Provided methods
    fn set_topology(&mut self, _topology: MonitorTopology) { ... }
    fn set_copperlist_info(&mut self, _info: CopperListInfo) { ... }
    fn set_execution_probe(&mut self, _probe: Arc<RuntimeExecutionProbe>) { ... }
    fn start(&mut self, _ctx: &CuContext) -> Result<(), CuError> { ... }
    fn observe_copperlist_io(&self, _stats: CopperListIoStats) { ... }
    fn process_panic(&self, _panic_message: &str) { ... }
    fn stop(&mut self, _ctx: &CuContext) -> Result<(), CuError> { ... }
}
Expand description

Trait to implement a monitoring task.

Required Methods§

Source

fn new( config: &CuConfig, taskids: &'static [&'static str], ) -> Result<Self, CuError>
where Self: Sized,

Source

fn process_copperlist( &self, _ctx: &CuContext, msgs: &[&CuMsgMetadata], ) -> Result<(), CuError>

Callback that will be trigger at the end of every copperlist (before, on or after the serialization).

Source

fn process_error( &self, taskid: usize, step: CuTaskState, error: &CuError, ) -> Decision

Callbacked when a Task errored out. The runtime requires an immediate decision.

Provided Methods§

Source

fn set_topology(&mut self, _topology: MonitorTopology)

Source

fn set_copperlist_info(&mut self, _info: CopperListInfo)

Source

fn set_execution_probe(&mut self, _probe: Arc<RuntimeExecutionProbe>)

Source

fn start(&mut self, _ctx: &CuContext) -> Result<(), CuError>

Source

fn observe_copperlist_io(&self, _stats: CopperListIoStats)

Called when the runtime finishes serializing a CopperList, giving IO accounting data.

Source

fn process_panic(&self, _panic_message: &str)

Callback fired when the runtime catches a panic in a std build.

Source

fn stop(&mut self, _ctx: &CuContext) -> Result<(), CuError>

Callbacked when copper is stopping.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<M0, M1> CuMonitor for (M0, M1)
where M0: CuMonitor, M1: CuMonitor,

Source§

fn new( config: &CuConfig, taskids: &'static [&'static str], ) -> Result<(M0, M1), CuError>
where (M0, M1): Sized,

Source§

fn set_topology(&mut self, topology: MonitorTopology)

Source§

fn set_copperlist_info(&mut self, info: CopperListInfo)

Source§

fn set_execution_probe(&mut self, probe: Arc<RuntimeExecutionProbe>)

Source§

fn start(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

fn process_copperlist( &self, ctx: &CuContext, msgs: &[&CuMsgMetadata], ) -> Result<(), CuError>

Source§

fn observe_copperlist_io(&self, stats: CopperListIoStats)

Source§

fn process_error( &self, taskid: usize, step: CuTaskState, error: &CuError, ) -> Decision

Source§

fn process_panic(&self, panic_message: &str)

Source§

fn stop(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

impl<M0, M1, M2> CuMonitor for (M0, M1, M2)
where M0: CuMonitor, M1: CuMonitor, M2: CuMonitor,

Source§

fn new( config: &CuConfig, taskids: &'static [&'static str], ) -> Result<(M0, M1, M2), CuError>

Source§

fn set_topology(&mut self, topology: MonitorTopology)

Source§

fn set_copperlist_info(&mut self, info: CopperListInfo)

Source§

fn set_execution_probe(&mut self, probe: Arc<RuntimeExecutionProbe>)

Source§

fn start(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

fn process_copperlist( &self, ctx: &CuContext, msgs: &[&CuMsgMetadata], ) -> Result<(), CuError>

Source§

fn observe_copperlist_io(&self, stats: CopperListIoStats)

Source§

fn process_error( &self, taskid: usize, step: CuTaskState, error: &CuError, ) -> Decision

Source§

fn process_panic(&self, panic_message: &str)

Source§

fn stop(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

impl<M0, M1, M2, M3> CuMonitor for (M0, M1, M2, M3)
where M0: CuMonitor, M1: CuMonitor, M2: CuMonitor, M3: CuMonitor,

Source§

fn new( config: &CuConfig, taskids: &'static [&'static str], ) -> Result<(M0, M1, M2, M3), CuError>

Source§

fn set_topology(&mut self, topology: MonitorTopology)

Source§

fn set_copperlist_info(&mut self, info: CopperListInfo)

Source§

fn set_execution_probe(&mut self, probe: Arc<RuntimeExecutionProbe>)

Source§

fn start(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

fn process_copperlist( &self, ctx: &CuContext, msgs: &[&CuMsgMetadata], ) -> Result<(), CuError>

Source§

fn observe_copperlist_io(&self, stats: CopperListIoStats)

Source§

fn process_error( &self, taskid: usize, step: CuTaskState, error: &CuError, ) -> Decision

Source§

fn process_panic(&self, panic_message: &str)

Source§

fn stop(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

impl<M0, M1, M2, M3, M4> CuMonitor for (M0, M1, M2, M3, M4)
where M0: CuMonitor, M1: CuMonitor, M2: CuMonitor, M3: CuMonitor, M4: CuMonitor,

Source§

fn new( config: &CuConfig, taskids: &'static [&'static str], ) -> Result<(M0, M1, M2, M3, M4), CuError>

Source§

fn set_topology(&mut self, topology: MonitorTopology)

Source§

fn set_copperlist_info(&mut self, info: CopperListInfo)

Source§

fn set_execution_probe(&mut self, probe: Arc<RuntimeExecutionProbe>)

Source§

fn start(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

fn process_copperlist( &self, ctx: &CuContext, msgs: &[&CuMsgMetadata], ) -> Result<(), CuError>

Source§

fn observe_copperlist_io(&self, stats: CopperListIoStats)

Source§

fn process_error( &self, taskid: usize, step: CuTaskState, error: &CuError, ) -> Decision

Source§

fn process_panic(&self, panic_message: &str)

Source§

fn stop(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

impl<M0, M1, M2, M3, M4, M5> CuMonitor for (M0, M1, M2, M3, M4, M5)
where M0: CuMonitor, M1: CuMonitor, M2: CuMonitor, M3: CuMonitor, M4: CuMonitor, M5: CuMonitor,

Source§

fn new( config: &CuConfig, taskids: &'static [&'static str], ) -> Result<(M0, M1, M2, M3, M4, M5), CuError>

Source§

fn set_topology(&mut self, topology: MonitorTopology)

Source§

fn set_copperlist_info(&mut self, info: CopperListInfo)

Source§

fn set_execution_probe(&mut self, probe: Arc<RuntimeExecutionProbe>)

Source§

fn start(&mut self, ctx: &CuContext) -> Result<(), CuError>

Source§

fn process_copperlist( &self, ctx: &CuContext, msgs: &[&CuMsgMetadata], ) -> Result<(), CuError>

Source§

fn observe_copperlist_io(&self, stats: CopperListIoStats)

Source§

fn process_error( &self, taskid: usize, step: CuTaskState, error: &CuError, ) -> Decision

Source§

fn process_panic(&self, panic_message: &str)

Source§

fn stop(&mut self, ctx: &CuContext) -> Result<(), CuError>

Implementors§