use crate::MonitoredItemHandle;
use opcua_types::{AttributeId, MonitoredItemModifyResult, NodeId, StatusCode};
#[derive(Debug, Clone)]
pub struct MonitoredItemRef {
handle: MonitoredItemHandle,
node_id: NodeId,
attribute: AttributeId,
}
impl MonitoredItemRef {
pub(crate) fn new(
handle: MonitoredItemHandle,
node_id: NodeId,
attribute: AttributeId,
) -> Self {
Self {
handle,
node_id,
attribute,
}
}
pub fn handle(&self) -> MonitoredItemHandle {
self.handle
}
pub fn node_id(&self) -> &NodeId {
&self.node_id
}
pub fn attribute(&self) -> AttributeId {
self.attribute
}
}
#[derive(Debug, Clone)]
pub struct MonitoredItemUpdateRef {
handle: MonitoredItemHandle,
node_id: NodeId,
attribute: AttributeId,
update: MonitoredItemModifyResult,
}
impl MonitoredItemUpdateRef {
pub(crate) fn new(
handle: MonitoredItemHandle,
node_id: NodeId,
attribute: AttributeId,
update: MonitoredItemModifyResult,
) -> Self {
Self {
handle,
node_id,
attribute,
update,
}
}
pub fn handle(&self) -> MonitoredItemHandle {
self.handle
}
pub fn node_id(&self) -> &NodeId {
&self.node_id
}
pub fn attribute(&self) -> AttributeId {
self.attribute
}
pub fn update(&self) -> &MonitoredItemModifyResult {
&self.update
}
pub fn status_code(&self) -> StatusCode {
self.update.status_code
}
pub(crate) fn into_result(self) -> MonitoredItemModifyResult {
self.update
}
}