pub struct ProcessSnapshot {
pub changed_fields: Vec<(String, EpicsValue, EventMask)>,
}Expand description
Snapshot of changes from a process cycle, used for notify outside lock.
Fields§
§changed_fields: Vec<(String, EpicsValue, EventMask)>(field, value, mask) — every posted field carries its own
DBE_* posting mask, mirroring C’s per-field
db_post_events(prec, &field, mask). One process cycle posts
different classes per field: a deadband-gated readback narrows
to the deadbands that actually crossed (MDEL → DBE_VALUE,
ADEL → DBE_LOG; motorRecord.cc monitor() 3477-3507,
aiRecord.c monitor()), while a change-detected auxiliary
field posts DBE_VALUE | DBE_LOG (motorRecord.cc 3522-3645
DBE_VAL_LOG; calcRecord.c:420). A single record-wide mask
collapses that granularity — an archive-only deadband crossing
would wrongly reach DBE_VALUE subscribers whenever any other
field changed in the same pass.
Implementations§
Source§impl ProcessSnapshot
impl ProcessSnapshot
Sourcepub fn published_mask(&self) -> EventMask
pub fn published_mask(&self) -> EventMask
The union of every DBE_* class this cycle actually published — the
port’s answer to “what did db_post_events send for this record”.
A field carrying an empty mask is not posted at all
(RecordInstance::notify_from_snapshot skips it), so an empty union
means the cycle published nothing and no monitor of any class fired.