diff --git a/examples/accesslevel/accesslevel.go b/examples/accesslevel/accesslevel.go index 6ae51ef1..d28a7d66 100644 --- a/examples/accesslevel/accesslevel.go +++ b/examples/accesslevel/accesslevel.go @@ -29,7 +29,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) id, err := ua.ParseNodeID(*nodeID) if err != nil { @@ -37,19 +37,19 @@ func main() { } n := c.Node(id) - accessLevel, err := n.AccessLevel() + accessLevel, err := n.AccessLevelWithContext(ctx) if err != nil { log.Fatal(err) } log.Print("AccessLevel: ", accessLevel) - userAccessLevel, err := n.UserAccessLevel() + userAccessLevel, err := n.UserAccessLevelWithContext(ctx) if err != nil { log.Fatal(err) } log.Print("UserAccessLevel: ", userAccessLevel) - v, err := n.Value() + v, err := n.ValueWithContext(ctx) switch { case err != nil: log.Fatal(err) diff --git a/examples/browse/browse.go b/examples/browse/browse.go index 6310693f..3e564a4e 100644 --- a/examples/browse/browse.go +++ b/examples/browse/browse.go @@ -45,13 +45,13 @@ func join(a, b string) string { return a + "." + b } -func browse(n *opcua.Node, path string, level int) ([]NodeDef, error) { +func browse(ctx context.Context, n *opcua.Node, path string, level int) ([]NodeDef, error) { // fmt.Printf("node:%s path:%q level:%d\n", n, path, level) if level > 10 { return nil, nil } - attrs, err := n.Attributes(ua.AttributeIDNodeClass, ua.AttributeIDBrowseName, ua.AttributeIDDescription, ua.AttributeIDAccessLevel, ua.AttributeIDDataType) + attrs, err := n.AttributesWithContext(ctx, ua.AttributeIDNodeClass, ua.AttributeIDBrowseName, ua.AttributeIDDescription, ua.AttributeIDAccessLevel, ua.AttributeIDDataType) if err != nil { return nil, err } @@ -138,13 +138,13 @@ func browse(n *opcua.Node, path string, level int) ([]NodeDef, error) { } browseChildren := func(refType uint32) error { - refs, err := n.ReferencedNodes(refType, ua.BrowseDirectionForward, ua.NodeClassAll, true) + refs, err := n.ReferencedNodesWithContext(ctx, refType, ua.BrowseDirectionForward, ua.NodeClassAll, true) if err != nil { return errors.Errorf("References: %d: %s", refType, err) } // fmt.Printf("found %d child refs\n", len(refs)) for _, rn := range refs { - children, err := browse(rn, def.Path, level+1) + children, err := browse(ctx, rn, def.Path, level+1) if err != nil { return errors.Errorf("browse children: %s", err) } @@ -178,14 +178,14 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) id, err := ua.ParseNodeID(*nodeID) if err != nil { log.Fatalf("invalid node id: %s", err) } - nodeList, err := browse(c.Node(id), "", 0) + nodeList, err := browse(ctx, c.Node(id), "", 0) if err != nil { log.Fatal(err) } diff --git a/examples/crypto/crypto.go b/examples/crypto/crypto.go index 05922697..ef80c304 100644 --- a/examples/crypto/crypto.go +++ b/examples/crypto/crypto.go @@ -65,7 +65,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) // Use our connection (read the server's time) v, err := c.Node(ua.NewNumericNodeID(0, 2258)).Value() diff --git a/examples/datetime/datetime.go b/examples/datetime/datetime.go index bde0aa1b..88a865d0 100644 --- a/examples/datetime/datetime.go +++ b/examples/datetime/datetime.go @@ -51,9 +51,9 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) - v, err := c.Node(ua.NewNumericNodeID(0, 2258)).Value() + v, err := c.Node(ua.NewNumericNodeID(0, 2258)).ValueWithContext(ctx) switch { case err != nil: log.Fatal(err) diff --git a/examples/history-read/history-read.go b/examples/history-read/history-read.go index cb2a2349..2fed4a28 100644 --- a/examples/history-read/history-read.go +++ b/examples/history-read/history-read.go @@ -28,7 +28,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) id, err := ua.ParseNodeID(*nodeID) if err != nil { @@ -37,7 +37,7 @@ func main() { // HistoryRead with ContinuationPoint use nodesToRequest := []*ua.HistoryReadValueID{ - &ua.HistoryReadValueID{ + { NodeID: id, DataEncoding: &ua.QualifiedName{}, }, @@ -54,7 +54,7 @@ func main() { // Reset old nodes nodesToRequest = make([]*ua.HistoryReadValueID, 0) - data, err := c.HistoryReadRawModified(nodes, &ua.ReadRawModifiedDetails{ + data, err := c.HistoryReadRawModifiedWithContext(ctx, nodes, &ua.ReadRawModifiedDetails{ IsReadModified: false, StartTime: time.Now().UTC().AddDate(0, -1, 0), EndTime: time.Now().UTC().AddDate(0, 1, 0), diff --git a/examples/method/method.go b/examples/method/method.go index 19224087..b1cf17d7 100644 --- a/examples/method/method.go +++ b/examples/method/method.go @@ -28,7 +28,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) in := int64(12) req := &ua.CallMethodRequest{ @@ -37,7 +37,7 @@ func main() { InputArguments: []*ua.Variant{ua.MustVariant(in)}, } - resp, err := c.Call(req) + resp, err := c.CallWithContext(ctx, req) if err != nil { log.Fatal(err) } diff --git a/examples/monitor/monitor.go b/examples/monitor/monitor.go index 8663a0b3..4e4118ac 100644 --- a/examples/monitor/monitor.go +++ b/examples/monitor/monitor.go @@ -68,7 +68,7 @@ func main() { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) m, err := monitor.NewNodeMonitor(c) if err != nil { diff --git a/examples/read/read.go b/examples/read/read.go index ec50d9dd..2e5beac5 100644 --- a/examples/read/read.go +++ b/examples/read/read.go @@ -29,7 +29,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) id, err := ua.ParseNodeID(*nodeID) if err != nil { @@ -44,7 +44,7 @@ func main() { TimestampsToReturn: ua.TimestampsToReturnBoth, } - resp, err := c.Read(req) + resp, err := c.ReadWithContext(ctx, req) if err != nil { log.Fatalf("Read failed: %s", err) } diff --git a/examples/regread/regread.go b/examples/regread/regread.go index 942f77a3..db5d1da7 100644 --- a/examples/regread/regread.go +++ b/examples/regread/regread.go @@ -29,14 +29,14 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) id, err := ua.ParseNodeID(*nodeID) if err != nil { log.Fatalf("invalid node id: %v", err) } - regResp, err := c.RegisterNodes(&ua.RegisterNodesRequest{ + regResp, err := c.RegisterNodesWithContext(ctx, &ua.RegisterNodesRequest{ NodesToRegister: []*ua.NodeID{id}, }) if err != nil { @@ -46,12 +46,12 @@ func main() { req := &ua.ReadRequest{ MaxAge: 2000, NodesToRead: []*ua.ReadValueID{ - &ua.ReadValueID{NodeID: regResp.RegisteredNodeIDs[0]}, + {NodeID: regResp.RegisteredNodeIDs[0]}, }, TimestampsToReturn: ua.TimestampsToReturnBoth, } - resp, err := c.Read(req) + resp, err := c.ReadWithContext(ctx, req) if err != nil { log.Fatalf("Read failed: %s", err) } @@ -60,7 +60,7 @@ func main() { } log.Print(resp.Results[0].Value.Value()) - _, err = c.UnregisterNodes(&ua.UnregisterNodesRequest{ + _, err = c.UnregisterNodesWithContext(ctx, &ua.UnregisterNodesRequest{ NodesToUnregister: []*ua.NodeID{id}, }) if err != nil { diff --git a/examples/subscribe/subscribe.go b/examples/subscribe/subscribe.go index d9fd6ce0..006cd65f 100644 --- a/examples/subscribe/subscribe.go +++ b/examples/subscribe/subscribe.go @@ -62,7 +62,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) notifyCh := make(chan *opcua.PublishNotificationData) diff --git a/examples/translate/translate.go b/examples/translate/translate.go index f126002c..ad4b669b 100644 --- a/examples/translate/translate.go +++ b/examples/translate/translate.go @@ -31,10 +31,10 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) root := c.Node(ua.NewTwoByteNodeID(id.ObjectsFolder)) - nodeID, err := root.TranslateBrowsePathInNamespaceToNodeID(uint16(*ns), *nodePath) + nodeID, err := root.TranslateBrowsePathInNamespaceToNodeIDWithContext(ctx, uint16(*ns), *nodePath) if err != nil { log.Fatal(err) } diff --git a/examples/trigger/trigger.go b/examples/trigger/trigger.go index f1a84ade..2cc37293 100644 --- a/examples/trigger/trigger.go +++ b/examples/trigger/trigger.go @@ -63,7 +63,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) notifyCh := make(chan *opcua.PublishNotificationData) diff --git a/examples/udt/udt.go b/examples/udt/udt.go index cf4b0d32..7cba5163 100644 --- a/examples/udt/udt.go +++ b/examples/udt/udt.go @@ -59,9 +59,9 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) - v, err := c.Node(id).Value() + v, err := c.Node(id).ValueWithContext(ctx) switch { case err != nil: log.Fatal(err) diff --git a/examples/write/write.go b/examples/write/write.go index 54d82296..1521a6c2 100644 --- a/examples/write/write.go +++ b/examples/write/write.go @@ -30,7 +30,7 @@ func main() { if err := c.Connect(ctx); err != nil { log.Fatal(err) } - defer c.Close() + defer c.CloseSessionWithContext(ctx) id, err := ua.ParseNodeID(*nodeID) if err != nil { @@ -55,7 +55,7 @@ func main() { }, } - resp, err := c.Write(req) + resp, err := c.WriteWithContext(ctx, req) if err != nil { log.Fatalf("Read failed: %s", err) }