Skip to main content

DaemonEvent

Enum DaemonEvent 

Source
#[non_exhaustive]
pub enum DaemonEvent {
Show 13 variants BuildResult { build_id: BuildId, result: Result<(), String>, }, SpawnResult { dataflow_id: DataflowId, result: Result<(), String>, }, AllNodesReady { dataflow_id: DataflowId, exited_before_subscribe: Vec<NodeId>, }, AllNodesFinished { dataflow_id: DataflowId, result: DataflowDaemonResult, }, Heartbeat { ft_stats: Option<FaultToleranceSnapshot>, }, ZenohListenEndpoint { endpoint: Option<String>, }, StatusReport { running_dataflows: Vec<DataflowStatusEntry>, }, Log(LogMessage), Exit, NodeMetrics { dataflow_id: DataflowId, metrics: BTreeMap<NodeId, NodeMetrics>, network: Option<NetworkMetrics>, }, TopicDebugData { dataflow_id: DataflowId, subscription_ids: Vec<Uuid>, payload: Vec<u8>, }, StateCatchUpAck { dataflow_id: DataflowId, ack_sequence: u64, }, NodeStopped { dataflow_id: DataflowId, node_id: NodeId, clean_stop: bool, },
}

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

BuildResult

Fields

§build_id: BuildId
§result: Result<(), String>
§

SpawnResult

Fields

§dataflow_id: DataflowId
§result: Result<(), String>
§

AllNodesReady

Fields

§dataflow_id: DataflowId
§exited_before_subscribe: Vec<NodeId>
§

AllNodesFinished

Fields

§dataflow_id: DataflowId
§

Heartbeat

§

ZenohListenEndpoint

The zenoh endpoint this daemon actually bound and is reachable at, sent once its session is open.

The coordinator records it and hands it to daemons that register later (see RegisterResult::Ok::peer_zenoh_endpoints), which is what lets a multi-machine deployment wire itself without every daemon being told every other daemon’s address.

Confirms or withdraws the endpoint this daemon advertised in its registration, once its zenoh session is open and the listener has been verified against info().locators().

Some(endpoint) confirms (and would correct a differing one); None withdraws, which is what a daemon whose listener did not bind must do so the coordinator stops handing out a dead endpoint.

The registration carries the endpoint in the first place — see DaemonRegisterRequest::zenoh_listen_endpoint for why it cannot wait until here. This is the correction, not the announcement.

Fields

§endpoint: Option<String>
§

StatusReport

Sent by the daemon after registration to report its current state. Enables coordinator-daemon reconciliation on reconnect.

Fields

§running_dataflows: Vec<DataflowStatusEntry>
§

Log(LogMessage)

§

Exit

§

NodeMetrics

Fields

§dataflow_id: DataflowId
§

TopicDebugData

Topic debug payload destined for one or more active CLI subscriptions.

Daemon and coordinator are co-deployed from the same build, so this multi-subscriber shape is safe to evolve within the repository.

Fields

§dataflow_id: DataflowId
§subscription_ids: Vec<Uuid>
§payload: Vec<u8>
§

StateCatchUpAck

Daemon acknowledges state catch-up through a given sequence number.

Fields

§dataflow_id: DataflowId
§ack_sequence: u64
§

NodeStopped

Sent by the daemon when a node has exited and the daemon will NOT restart it (e.g. dora node stop, a node exiting under restart_policy: Never, or a final-failure cascade). The coordinator uses this to invalidate its cached node_metrics entry so dora node list reflects the actual state instead of the last-reported “Running” snapshot. Without this signal the daemon’s metrics-snapshot loop simply stops including the dead node and the coordinator’s cache is frozen at the last pre-exit values forever.

Fields

§dataflow_id: DataflowId
§node_id: NodeId
§clean_stop: bool

true if the daemon called disable_restart() before the exit (i.e. the stop_single_node / restart_single_node path triggered by dora node stop/restart). false for a final-failure exit under restart_policy: Never or a max_restarts exhaustion. The coordinator uses this to pick NodeStatus::Stopped vs NodeStatus::Failed, so a crash is not silently reported as a clean teardown (which would hide it from dora doctor).

Trait Implementations§

Source§

impl Debug for DaemonEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for DaemonEvent

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for DaemonEvent

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V