-
Notifications
You must be signed in to change notification settings - Fork 1k
[Server] Extend MasterNodeManager with support for ReadAsync, WriteAsync, HistoryReadAsync, HistoryWriteAsync, TranslateBrowsePathAsync, ConditionRefreshAsync #3188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3188 +/- ##
==========================================
- Coverage 57.61% 57.39% -0.22%
==========================================
Files 355 355
Lines 78087 78535 +448
Branches 13822 13854 +32
==========================================
+ Hits 44990 45076 +86
- Misses 28860 29213 +353
- Partials 4237 4246 +9 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR extends the MasterNodeManager with asynchronous support for several key OPC UA operations, introducing async methods for ReadAsync, WriteAsync, HistoryReadAsync, HistoryWriteAsync, TranslateBrowsePathAsync, and ConditionRefreshAsync. This modernizes the codebase by adding async capabilities while maintaining backward compatibility.
Key changes:
- Adds new async-capable interfaces for individual operations
- Extends MasterNodeManager to support both sync and async execution paths
- Implements proper async/await patterns with cancellation token support
- Creates an adapter pattern to allow existing synchronous node managers to work with the async infrastructure
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| Opc.Ua.Core.csproj | Removes exclusions for async operations to enable new async methods |
| StandardServer.cs | Adds async method implementations for TranslateBrowsePathsToNodeIds, Read, HistoryRead, Write, and HistoryUpdate services |
| MasterNodeManager.cs | Implements comprehensive async support with internal async methods and adapter patterns for backward compatibility |
| INodeManager.cs | Defines new async-capable interfaces for individual operations and marks the combined interface as experimental |
| AsyncNodeManagerAdapter.cs | Provides adapter implementation to make synchronous node managers compatible with async interfaces |
| .editorconfig | Suppresses experimental API warnings for the new async interfaces |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Proposed changes
Extend MasterNodeManager with support for
A base implementation in the NodeManager layer will follow at a later point in time with a CustomNodeManager3, when the IAsyncNodeManager Interface is complete.
Related Issues
Types of changes
Checklist
Further comments