opcua_server/node_manager/
monitored_items.rs1use crate::MonitoredItemHandle;
2use opcua_types::{AttributeId, MonitoredItemModifyResult, NodeId, StatusCode};
3
4#[derive(Debug, Clone)]
5pub struct MonitoredItemRef {
7 handle: MonitoredItemHandle,
8 node_id: NodeId,
9 attribute: AttributeId,
10}
11
12impl MonitoredItemRef {
13 pub(crate) fn new(
14 handle: MonitoredItemHandle,
15 node_id: NodeId,
16 attribute: AttributeId,
17 ) -> Self {
18 Self {
19 handle,
20 node_id,
21 attribute,
22 }
23 }
24
25 pub fn handle(&self) -> MonitoredItemHandle {
27 self.handle
28 }
29
30 pub fn node_id(&self) -> &NodeId {
32 &self.node_id
33 }
34
35 pub fn attribute(&self) -> AttributeId {
37 self.attribute
38 }
39}
40
41#[derive(Debug, Clone)]
42pub struct MonitoredItemUpdateRef {
44 handle: MonitoredItemHandle,
45 node_id: NodeId,
46 attribute: AttributeId,
47 update: MonitoredItemModifyResult,
48}
49
50impl MonitoredItemUpdateRef {
51 pub(crate) fn new(
52 handle: MonitoredItemHandle,
53 node_id: NodeId,
54 attribute: AttributeId,
55 update: MonitoredItemModifyResult,
56 ) -> Self {
57 Self {
58 handle,
59 node_id,
60 attribute,
61 update,
62 }
63 }
64
65 pub fn handle(&self) -> MonitoredItemHandle {
67 self.handle
68 }
69
70 pub fn node_id(&self) -> &NodeId {
72 &self.node_id
73 }
74
75 pub fn attribute(&self) -> AttributeId {
77 self.attribute
78 }
79
80 pub fn update(&self) -> &MonitoredItemModifyResult {
82 &self.update
83 }
84
85 pub fn status_code(&self) -> StatusCode {
87 self.update.status_code
88 }
89
90 pub(crate) fn into_result(self) -> MonitoredItemModifyResult {
91 self.update
92 }
93}