pub struct CovSubscriptionTable { /* private fields */ }Expand description
Table of active COV subscriptions.
Implementations§
Source§impl CovSubscriptionTable
impl CovSubscriptionTable
pub fn new() -> Self
Sourcepub fn subscribe(&mut self, sub: CovSubscription)
pub fn subscribe(&mut self, sub: CovSubscription)
Add or update a subscription.
Sourcepub fn contains(
&self,
mac: &MacAddr,
network: Option<&NpduAddress>,
process_id: u32,
monitored_object: ObjectIdentifier,
monitored_property: Option<PropertyIdentifier>,
) -> bool
pub fn contains( &self, mac: &MacAddr, network: Option<&NpduAddress>, process_id: u32, monitored_object: ObjectIdentifier, monitored_property: Option<PropertyIdentifier>, ) -> bool
Whether a subscription key is already present.
Sourcepub fn unsubscribe(
&mut self,
mac: &[u8],
process_id: u32,
monitored_object: ObjectIdentifier,
) -> bool
pub fn unsubscribe( &mut self, mac: &[u8], process_id: u32, monitored_object: ObjectIdentifier, ) -> bool
Remove a subscription by subscriber MAC, process identifier, and monitored object.
Sourcepub fn unsubscribe_at(
&mut self,
mac: &[u8],
network: Option<&NpduAddress>,
process_id: u32,
monitored_object: ObjectIdentifier,
) -> bool
pub fn unsubscribe_at( &mut self, mac: &[u8], network: Option<&NpduAddress>, process_id: u32, monitored_object: ObjectIdentifier, ) -> bool
Remove a whole-object subscription for a specific subscriber endpoint.
Sourcepub fn unsubscribe_property(
&mut self,
mac: &[u8],
process_id: u32,
monitored_object: ObjectIdentifier,
monitored_property: PropertyIdentifier,
) -> bool
pub fn unsubscribe_property( &mut self, mac: &[u8], process_id: u32, monitored_object: ObjectIdentifier, monitored_property: PropertyIdentifier, ) -> bool
Unsubscribe a per-property subscription.
Sourcepub fn unsubscribe_property_at(
&mut self,
mac: &[u8],
network: Option<&NpduAddress>,
process_id: u32,
monitored_object: ObjectIdentifier,
monitored_property: PropertyIdentifier,
) -> bool
pub fn unsubscribe_property_at( &mut self, mac: &[u8], network: Option<&NpduAddress>, process_id: u32, monitored_object: ObjectIdentifier, monitored_property: PropertyIdentifier, ) -> bool
Unsubscribe a per-property subscription for a specific subscriber endpoint.
Sourcepub fn unsubscribe_cov_multiple_context(
&mut self,
mac: &[u8],
network: Option<&NpduAddress>,
process_id: u32,
confirmed: bool,
)
pub fn unsubscribe_cov_multiple_context( &mut self, mac: &[u8], network: Option<&NpduAddress>, process_id: u32, confirmed: bool, )
Remove every COV-multiple subscription in a subscriber context.
Sourcepub fn unsubscribe_cov_multiple_property_at(
&mut self,
mac: &[u8],
network: Option<&NpduAddress>,
process_id: u32,
confirmed: bool,
monitored_object: ObjectIdentifier,
monitored_property: PropertyIdentifier,
)
pub fn unsubscribe_cov_multiple_property_at( &mut self, mac: &[u8], network: Option<&NpduAddress>, process_id: u32, confirmed: bool, monitored_object: ObjectIdentifier, monitored_property: PropertyIdentifier, )
Remove one property from a COV-multiple subscriber context.
Sourcepub fn refresh_cov_multiple_context_lifetime(
&mut self,
mac: &[u8],
network: Option<&NpduAddress>,
process_id: u32,
confirmed: bool,
expires_at: Option<Instant>,
)
pub fn refresh_cov_multiple_context_lifetime( &mut self, mac: &[u8], network: Option<&NpduAddress>, process_id: u32, confirmed: bool, expires_at: Option<Instant>, )
Refresh the lifetime for an existing COV-multiple subscriber context.
Sourcepub fn remove_for_object(&mut self, oid: ObjectIdentifier)
pub fn remove_for_object(&mut self, oid: ObjectIdentifier)
Remove all subscriptions for a given object (used on DeleteObject).
Sourcepub fn subscriptions_for(
&mut self,
oid: &ObjectIdentifier,
) -> Vec<&CovSubscription>
pub fn subscriptions_for( &mut self, oid: &ObjectIdentifier, ) -> Vec<&CovSubscription>
Get all active (non-expired) subscriptions for a given object.
Sourcepub fn set_last_notified_value(
&mut self,
mac: &[u8],
network: Option<&NpduAddress>,
process_id: u32,
monitored_object: ObjectIdentifier,
monitored_property: Option<PropertyIdentifier>,
value: f32,
)
pub fn set_last_notified_value( &mut self, mac: &[u8], network: Option<&NpduAddress>, process_id: u32, monitored_object: ObjectIdentifier, monitored_property: Option<PropertyIdentifier>, value: f32, )
Update the last-notified value for a subscription.
Sourcepub fn should_notify(
sub: &CovSubscription,
current_value: Option<f32>,
cov_increment: Option<f32>,
) -> bool
pub fn should_notify( sub: &CovSubscription, current_value: Option<f32>, cov_increment: Option<f32>, ) -> bool
Check if a COV notification should fire for a subscription given the current present_value and the object’s COV_Increment.
Returns true if:
- No COV_Increment (binary/multi-state objects — always notify)
- No previous notified value (first notification)
|current - last_notified| >= cov_increment
Sourcepub fn purge_expired(&mut self) -> usize
pub fn purge_expired(&mut self) -> usize
Remove all expired subscriptions. Returns the number removed.