diff --git a/.github/workflows/latest-dependencies.yaml b/.github/workflows/latest-dependencies.yaml index cea05bc..4fe9ecc 100644 --- a/.github/workflows/latest-dependencies.yaml +++ b/.github/workflows/latest-dependencies.yaml @@ -100,14 +100,18 @@ jobs: cargo update --verbose - name: Build with feature combinations + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). + # TODO: Try to re-enable this step regardless of the build target in the future. + if: ${{ matrix.runner_os != 'ubuntu-22.04' || endsWith(matrix.target, '-musl') }} run: >- cargo hack --each-feature build --locked - name: Run tests (bins/lib/tests/examples) with feature combinations + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). # Disable tests for musl libc target(s) due to build failure for unknown reasons. # TODO: Try to re-enable this step regardless of the build target in the future. - if: ${{ !endsWith(matrix.target, '-musl') }} + if: ${{ matrix.runner_os != 'ubuntu-22.04' && !endsWith(matrix.target, '-musl') }} run: >- cargo hack --each-feature test --locked @@ -120,15 +124,19 @@ jobs: # certain features only for some doctests, so we run them without # `cargo-hack`. - name: Run doctests with all features enabled + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). # Disable tests for musl libc target(s) due to build failure for unknown reasons. # TODO: Try to re-enable this step regardless of the build target in the future. - if: ${{ !endsWith(matrix.target, '-musl') }} + if: ${{ matrix.runner_os != 'ubuntu-22.04' && !endsWith(matrix.target, '-musl') }} run: >- cargo test --locked --all-features --doc - name: Build package with all features enabled + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). + # TODO: Try to re-enable this step regardless of the build target in the future. + if: ${{ matrix.runner_os != 'ubuntu-22.04' || endsWith(matrix.target, '-musl') }} # We allow dirty state here because it is only expected after update. run: >- cargo package diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 287834d..d3cc1ac 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -116,14 +116,18 @@ jobs: shared-key: ${{ github.workflow }}-${{ github.job }}-${{ matrix.target }}-${{ matrix.runner_os }} - name: Build with feature combinations + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). + # TODO: Try to re-enable this step regardless of the build target in the future. + if: ${{ matrix.runner_os != 'ubuntu-22.04' || endsWith(matrix.target, '-musl') }} run: >- cargo hack --each-feature build --locked - name: Run tests (bins/lib/tests/examples) with feature combinations + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). # Disable tests for musl libc target(s) due to build failure for unknown reasons. # TODO: Try to re-enable this step regardless of the build target in the future. - if: ${{ !endsWith(matrix.target, '-musl') }} + if: ${{ matrix.runner_os != 'ubuntu-22.04' && !endsWith(matrix.target, '-musl') }} run: >- cargo hack --each-feature test --locked @@ -136,15 +140,19 @@ jobs: # certain features only for some doctests, so we run them without # `cargo-hack`. - name: Run doctests with all features enabled + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). # Disable tests for musl libc target(s) due to build failure for unknown reasons. # TODO: Try to re-enable this step regardless of the build target in the future. - if: ${{ !endsWith(matrix.target, '-musl') }} + if: ${{ matrix.runner_os != 'ubuntu-22.04' && !endsWith(matrix.target, '-musl') }} run: >- cargo test --locked --all-features --doc - name: Build package with all features enabled + # Disable build for GNU targets on Ubuntu 22.04 (unsupported `atomic_uintptr_t`). + # TODO: Try to re-enable this step regardless of the build target in the future. + if: ${{ matrix.runner_os != 'ubuntu-22.04' || endsWith(matrix.target, '-musl') }} run: >- cargo package --locked --all-features diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index dfdf7c4..0122dd1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,7 +22,7 @@ repos: - id: mixed-line-ending - id: trailing-whitespace - repo: https://github.com/DavidAnson/markdownlint-cli2 - rev: v0.22.0 + rev: v0.22.1 hooks: - id: markdownlint-cli2 - repo: https://github.com/codespell-project/codespell @@ -31,23 +31,26 @@ repos: - id: codespell args: [--ignore-words=.codespellignore] - repo: https://github.com/sirosen/check-jsonschema - rev: 0.37.1 + rev: 0.37.2 hooks: - id: check-github-actions - id: check-github-workflows - - repo: https://github.com/ComPWA/taplo-pre-commit - rev: v0.9.3 - hooks: - - id: taplo-format - - id: taplo-lint + # The taplo-lint checks have been disabled, because they only work with + # the newest Rust version and don't respect the `rust-version` field in + # `Cargo.toml`. + # - repo: https://github.com/ComPWA/taplo-pre-commit + # rev: v0.9.3 + # hooks: + # - id: taplo-lint # Format code with oxfmt for supported file types. - repo: https://github.com/oxc-project/mirrors-oxfmt - rev: v0.43.0 + rev: v0.45.0 hooks: - id: oxfmt types_or: - json - markdown + - toml - yaml - repo: https://github.com/doublify/pre-commit-rust rev: v1.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index f4520cc..ec0cfc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed + +- Breaking: Upgrade to open62541 version + [1.5.4](https://github.com/open62541/open62541/releases/tag/v1.5.4). + ## [0.5.4] - 2026-03-16 ### Fixed diff --git a/Cargo.lock b/Cargo.lock index cf17e45..60234ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -39,9 +39,9 @@ checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "cc" -version = "1.2.56" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", "shlex", @@ -75,9 +75,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] @@ -111,9 +111,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.182" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libloading" @@ -155,7 +155,7 @@ dependencies = [ [[package]] name = "open62541-sys" -version = "0.5.4" +version = "0.6.0" dependencies = [ "bindgen", "cc", @@ -184,9 +184,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -216,15 +216,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "shlex" diff --git a/Cargo.toml b/Cargo.toml index 5f5dcb4..d3ca45a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "open62541-sys" -version = "0.5.4" +version = "0.6.0" authors = ["HMI Project"] edition = "2024" # Keep MSRV in sync with `test.yaml`/`build.rs`. Use versions that are at least 6 months old. @@ -59,8 +59,8 @@ include = [ [build-dependencies] bindgen = { version = "0.72.1" } -cc = "1.2.56" -cmake = "0.1.57" +cc = "1.2.58" +cmake = "0.1.58" version_check = "0.9.5" [features] diff --git a/open62541 b/open62541 index f63e2a8..dfd44a2 160000 --- a/open62541 +++ b/open62541 @@ -1 +1 @@ -Subproject commit f63e2a819aff6e468242dc2e54ccbd5b75d63654 +Subproject commit dfd44a234645ed29cc6d190048bc8ae80c5454cd diff --git a/tests/integration.rs b/tests/integration.rs index 09f3189..936aeb2 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -5,9 +5,9 @@ use open62541_sys::{ va_list_, }; +// Check validity of explicitly defined type aliases. #[test] -fn variadic_arguments() { - // Check if `va_list_` type matches. +fn type_aliases() { const unsafe extern "C" fn log_c( _log_context: *mut ffi::c_void, _level: UA_LogLevel, @@ -15,26 +15,13 @@ fn variadic_arguments() { _msg: *const ffi::c_char, _args: va_list_, ) { + // Nothing here. } - let _logger = UA_Logger { - log: Some(log_c), - context: ptr::null_mut(), - clear: None, - }; -} -#[test] -fn logger_types() { - // Check validity of type aliases for `UA_Logger` callbacks. - const unsafe extern "C" fn log_c( - _log_context: *mut ffi::c_void, - _level: UA_LogLevel, - _category: UA_LogCategory, - _msg: *const ffi::c_char, - _args: va_list_, - ) { + const unsafe extern "C" fn clear_c(_logger: *mut UA_Logger) { + // Nothing here. } - const unsafe extern "C" fn clear_c(_logger: *mut UA_Logger) {} + let log: UA_LoggerLogCallback_ = Some(log_c); let clear: UA_LoggerClearCallback_ = Some(clear_c); let _logger = UA_Logger { @@ -44,16 +31,11 @@ fn logger_types() { }; } +// Make sure that our custom exports (prefixed with `RS_`) are available under their expected names, +// i.e. without the `RS_` prefix. #[test] -fn has_custom_exports() { - // Make sure that our custom exports (prefixed internally with `RS_`) are available under their - // expected names. - // - use open62541_sys::{UA_EMPTY_ARRAY_SENTINEL, vsnprintf_va_copy, vsnprintf_va_end}; +fn custom_exports() { + use open62541_sys::UA_EMPTY_ARRAY_SENTINEL; - #[expect(clippy::no_effect_underscore_binding, reason = "check existence")] - let _unused = vsnprintf_va_copy; - #[expect(clippy::no_effect_underscore_binding, reason = "check existence")] - let _unused = vsnprintf_va_end; let _unused = unsafe { UA_EMPTY_ARRAY_SENTINEL }; } diff --git a/wrapper.c b/wrapper.c index d2bd384..2c5d25b 100644 --- a/wrapper.c +++ b/wrapper.c @@ -1,61 +1,7 @@ #include "wrapper.h" -// Wrapper for `vsnprintf()` with normalized behavior across different platforms -// such as Microsoft Windows. -// -// Other than the standard `vsnprintf()`, this function does not consume the -// passed `va_list` argument! The caller is responsible for calling -// `vsnprintf_va_end()` on the `va_list` argument eventually. -#if defined(_MSC_VER) && _MSC_VER < 1900 -int RS_vsnprintf_va_copy( - char *buffer, - size_t count, - const char *format, - va_list args) -{ - // Microsoft does not (always) define a standard-conforming `vsnprintf()`. But - // it does define a variant with slightly different behavior. We normalize the - // differences as best we can. - int result = -1; - if (count) - { - va_list args_copied; - va_copy(args_copied, args); - result = _vsnprintf_s(buffer, count, _TRUNCATE, format, args_copied); - } - if (result < 0) - { - va_list args_copied; - va_copy(args_copied, args); - result = _vscprintf(format, args_copied); - } - - return result; -} -#else -int RS_vsnprintf_va_copy( - char *buffer, - size_t count, - const char *format, - va_list args) -{ - // Forward to existing standards-compliant function. It may have be defined as - // a macro, so we need a wrapper function for bindgen to pick it up anyway. - va_list args_copied; - va_copy(args_copied, args); - int result = vsnprintf(buffer, count, format, args_copied); - - return result; -} -#endif - -void RS_vsnprintf_va_end(va_list args) -{ - va_end(args); -} - // bindgen does not support non-trivial `#define` used for pointer constant. Use // statically defined constant as workaround for now. // -// See https://github.com/rust-lang/rust-bindgen/issues/2426 +// See . const void *const RS_UA_EMPTY_ARRAY_SENTINEL = UA_EMPTY_ARRAY_SENTINEL; diff --git a/wrapper.h b/wrapper.h index c22771b..885e70e 100644 --- a/wrapper.h +++ b/wrapper.h @@ -8,42 +8,270 @@ #include #include #include +#include +#include +#include #include #include -#include -#include #include - -// Include files that are only available (by CMake) with certain flags. -#ifdef UA_ENABLE_ENCRYPTION -#include #include -#endif - -// Include with binding of `vsnprintf()` and `va_list` functions to simplify -// formatting of log messages. -#include -#include // bindgen does not support non-trivial `#define` used for pointer constant. Use // statically defined constant as workaround for now. // -// See https://github.com/rust-lang/rust-bindgen/issues/2426 +// See . extern const void *const RS_UA_EMPTY_ARRAY_SENTINEL; -// Wrapper for `vsnprintf()` with normalized behavior across different platforms -// such as Microsoft Windows. -// -// Other than the standard `vsnprintf()`, this implementation copies the -// `va_list` argument before passing it along to allow repeated calls. The -// caller is responsible to invoke `vsnprintf_va_end()` on the `va_list` -// argument eventually. -int RS_vsnprintf_va_copy( - char *buffer, - size_t count, - const char *format, - va_list args); - -// Wrapper for `va_end()` that is supposed to be used with -// `vsnprintf_va_copy()`. -void RS_vsnprintf_va_end(va_list args); +// bindgen has problems with trivially defined macro constants, for some reason. +// The following list has been taken from `statuscodes.c`. +static const UA_StatusCode RS_UA_STATUSCODE_GOOD = UA_STATUSCODE_GOOD; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAIN = UA_STATUSCODE_UNCERTAIN; +static const UA_StatusCode RS_UA_STATUSCODE_BAD = UA_STATUSCODE_BAD; +static const UA_StatusCode RS_UA_STATUSCODE_BADUNEXPECTEDERROR = UA_STATUSCODE_BADUNEXPECTEDERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADINTERNALERROR = UA_STATUSCODE_BADINTERNALERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADOUTOFMEMORY = UA_STATUSCODE_BADOUTOFMEMORY; +static const UA_StatusCode RS_UA_STATUSCODE_BADRESOURCEUNAVAILABLE = UA_STATUSCODE_BADRESOURCEUNAVAILABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADCOMMUNICATIONERROR = UA_STATUSCODE_BADCOMMUNICATIONERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADENCODINGERROR = UA_STATUSCODE_BADENCODINGERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADDECODINGERROR = UA_STATUSCODE_BADDECODINGERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADENCODINGLIMITSEXCEEDED = UA_STATUSCODE_BADENCODINGLIMITSEXCEEDED; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTTOOLARGE = UA_STATUSCODE_BADREQUESTTOOLARGE; +static const UA_StatusCode RS_UA_STATUSCODE_BADRESPONSETOOLARGE = UA_STATUSCODE_BADRESPONSETOOLARGE; +static const UA_StatusCode RS_UA_STATUSCODE_BADUNKNOWNRESPONSE = UA_STATUSCODE_BADUNKNOWNRESPONSE; +static const UA_StatusCode RS_UA_STATUSCODE_BADTIMEOUT = UA_STATUSCODE_BADTIMEOUT; +static const UA_StatusCode RS_UA_STATUSCODE_BADSERVICEUNSUPPORTED = UA_STATUSCODE_BADSERVICEUNSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSHUTDOWN = UA_STATUSCODE_BADSHUTDOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADSERVERNOTCONNECTED = UA_STATUSCODE_BADSERVERNOTCONNECTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSERVERHALTED = UA_STATUSCODE_BADSERVERHALTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTHINGTODO = UA_STATUSCODE_BADNOTHINGTODO; +static const UA_StatusCode RS_UA_STATUSCODE_BADTOOMANYOPERATIONS = UA_STATUSCODE_BADTOOMANYOPERATIONS; +static const UA_StatusCode RS_UA_STATUSCODE_BADTOOMANYMONITOREDITEMS = UA_STATUSCODE_BADTOOMANYMONITOREDITEMS; +static const UA_StatusCode RS_UA_STATUSCODE_BADDATATYPEIDUNKNOWN = UA_STATUSCODE_BADDATATYPEIDUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEINVALID = UA_STATUSCODE_BADCERTIFICATEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADSECURITYCHECKSFAILED = UA_STATUSCODE_BADSECURITYCHECKSFAILED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEPOLICYCHECKFAILED = UA_STATUSCODE_BADCERTIFICATEPOLICYCHECKFAILED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATETIMEINVALID = UA_STATUSCODE_BADCERTIFICATETIMEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEISSUERTIMEINVALID = UA_STATUSCODE_BADCERTIFICATEISSUERTIMEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEHOSTNAMEINVALID = UA_STATUSCODE_BADCERTIFICATEHOSTNAMEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEURIINVALID = UA_STATUSCODE_BADCERTIFICATEURIINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEUSENOTALLOWED = UA_STATUSCODE_BADCERTIFICATEUSENOTALLOWED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEISSUERUSENOTALLOWED = UA_STATUSCODE_BADCERTIFICATEISSUERUSENOTALLOWED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEUNTRUSTED = UA_STATUSCODE_BADCERTIFICATEUNTRUSTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEREVOCATIONUNKNOWN = UA_STATUSCODE_BADCERTIFICATEREVOCATIONUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEISSUERREVOCATIONUNKNOWN = UA_STATUSCODE_BADCERTIFICATEISSUERREVOCATIONUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEREVOKED = UA_STATUSCODE_BADCERTIFICATEREVOKED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATEISSUERREVOKED = UA_STATUSCODE_BADCERTIFICATEISSUERREVOKED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCERTIFICATECHAININCOMPLETE = UA_STATUSCODE_BADCERTIFICATECHAININCOMPLETE; +static const UA_StatusCode RS_UA_STATUSCODE_BADUSERACCESSDENIED = UA_STATUSCODE_BADUSERACCESSDENIED; +static const UA_StatusCode RS_UA_STATUSCODE_BADIDENTITYTOKENINVALID = UA_STATUSCODE_BADIDENTITYTOKENINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADIDENTITYTOKENREJECTED = UA_STATUSCODE_BADIDENTITYTOKENREJECTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSECURECHANNELIDINVALID = UA_STATUSCODE_BADSECURECHANNELIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADINVALIDTIMESTAMP = UA_STATUSCODE_BADINVALIDTIMESTAMP; +static const UA_StatusCode RS_UA_STATUSCODE_BADNONCEINVALID = UA_STATUSCODE_BADNONCEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADSESSIONIDINVALID = UA_STATUSCODE_BADSESSIONIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADSESSIONCLOSED = UA_STATUSCODE_BADSESSIONCLOSED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSESSIONNOTACTIVATED = UA_STATUSCODE_BADSESSIONNOTACTIVATED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSUBSCRIPTIONIDINVALID = UA_STATUSCODE_BADSUBSCRIPTIONIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTHEADERINVALID = UA_STATUSCODE_BADREQUESTHEADERINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADTIMESTAMPSTORETURNINVALID = UA_STATUSCODE_BADTIMESTAMPSTORETURNINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTCANCELLEDBYCLIENT = UA_STATUSCODE_BADREQUESTCANCELLEDBYCLIENT; +static const UA_StatusCode RS_UA_STATUSCODE_BADTOOMANYARGUMENTS = UA_STATUSCODE_BADTOOMANYARGUMENTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADLICENSEEXPIRED = UA_STATUSCODE_BADLICENSEEXPIRED; +static const UA_StatusCode RS_UA_STATUSCODE_BADLICENSELIMITSEXCEEDED = UA_STATUSCODE_BADLICENSELIMITSEXCEEDED; +static const UA_StatusCode RS_UA_STATUSCODE_BADLICENSENOTAVAILABLE = UA_STATUSCODE_BADLICENSENOTAVAILABLE; +static const UA_StatusCode RS_UA_STATUSCODE_GOODSUBSCRIPTIONTRANSFERRED = UA_STATUSCODE_GOODSUBSCRIPTIONTRANSFERRED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODCOMPLETESASYNCHRONOUSLY = UA_STATUSCODE_GOODCOMPLETESASYNCHRONOUSLY; +static const UA_StatusCode RS_UA_STATUSCODE_GOODOVERLOAD = UA_STATUSCODE_GOODOVERLOAD; +static const UA_StatusCode RS_UA_STATUSCODE_GOODCLAMPED = UA_STATUSCODE_GOODCLAMPED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOCOMMUNICATION = UA_STATUSCODE_BADNOCOMMUNICATION; +static const UA_StatusCode RS_UA_STATUSCODE_BADWAITINGFORINITIALDATA = UA_STATUSCODE_BADWAITINGFORINITIALDATA; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODEIDINVALID = UA_STATUSCODE_BADNODEIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODEIDUNKNOWN = UA_STATUSCODE_BADNODEIDUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADATTRIBUTEIDINVALID = UA_STATUSCODE_BADATTRIBUTEIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADINDEXRANGEINVALID = UA_STATUSCODE_BADINDEXRANGEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADINDEXRANGENODATA = UA_STATUSCODE_BADINDEXRANGENODATA; +static const UA_StatusCode RS_UA_STATUSCODE_BADDATAENCODINGINVALID = UA_STATUSCODE_BADDATAENCODINGINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADDATAENCODINGUNSUPPORTED = UA_STATUSCODE_BADDATAENCODINGUNSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTREADABLE = UA_STATUSCODE_BADNOTREADABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTWRITABLE = UA_STATUSCODE_BADNOTWRITABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADOUTOFRANGE = UA_STATUSCODE_BADOUTOFRANGE; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTSUPPORTED = UA_STATUSCODE_BADNOTSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTFOUND = UA_STATUSCODE_BADNOTFOUND; +static const UA_StatusCode RS_UA_STATUSCODE_BADOBJECTDELETED = UA_STATUSCODE_BADOBJECTDELETED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTIMPLEMENTED = UA_STATUSCODE_BADNOTIMPLEMENTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADMONITORINGMODEINVALID = UA_STATUSCODE_BADMONITORINGMODEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADMONITOREDITEMIDINVALID = UA_STATUSCODE_BADMONITOREDITEMIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADMONITOREDITEMFILTERINVALID = UA_STATUSCODE_BADMONITOREDITEMFILTERINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADMONITOREDITEMFILTERUNSUPPORTED = UA_STATUSCODE_BADMONITOREDITEMFILTERUNSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADFILTERNOTALLOWED = UA_STATUSCODE_BADFILTERNOTALLOWED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSTRUCTUREMISSING = UA_STATUSCODE_BADSTRUCTUREMISSING; +static const UA_StatusCode RS_UA_STATUSCODE_BADEVENTFILTERINVALID = UA_STATUSCODE_BADEVENTFILTERINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONTENTFILTERINVALID = UA_STATUSCODE_BADCONTENTFILTERINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADFILTEROPERATORINVALID = UA_STATUSCODE_BADFILTEROPERATORINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADFILTEROPERATORUNSUPPORTED = UA_STATUSCODE_BADFILTEROPERATORUNSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADFILTEROPERANDCOUNTMISMATCH = UA_STATUSCODE_BADFILTEROPERANDCOUNTMISMATCH; +static const UA_StatusCode RS_UA_STATUSCODE_BADFILTEROPERANDINVALID = UA_STATUSCODE_BADFILTEROPERANDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADFILTERELEMENTINVALID = UA_STATUSCODE_BADFILTERELEMENTINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADFILTERLITERALINVALID = UA_STATUSCODE_BADFILTERLITERALINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONTINUATIONPOINTINVALID = UA_STATUSCODE_BADCONTINUATIONPOINTINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOCONTINUATIONPOINTS = UA_STATUSCODE_BADNOCONTINUATIONPOINTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADREFERENCETYPEIDINVALID = UA_STATUSCODE_BADREFERENCETYPEIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADBROWSEDIRECTIONINVALID = UA_STATUSCODE_BADBROWSEDIRECTIONINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODENOTINVIEW = UA_STATUSCODE_BADNODENOTINVIEW; +static const UA_StatusCode RS_UA_STATUSCODE_BADNUMERICOVERFLOW = UA_STATUSCODE_BADNUMERICOVERFLOW; +static const UA_StatusCode RS_UA_STATUSCODE_BADSERVERURIINVALID = UA_STATUSCODE_BADSERVERURIINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADSERVERNAMEMISSING = UA_STATUSCODE_BADSERVERNAMEMISSING; +static const UA_StatusCode RS_UA_STATUSCODE_BADDISCOVERYURLMISSING = UA_STATUSCODE_BADDISCOVERYURLMISSING; +static const UA_StatusCode RS_UA_STATUSCODE_BADSEMAPHOREFILEMISSING = UA_STATUSCODE_BADSEMAPHOREFILEMISSING; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTTYPEINVALID = UA_STATUSCODE_BADREQUESTTYPEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADSECURITYMODEREJECTED = UA_STATUSCODE_BADSECURITYMODEREJECTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSECURITYPOLICYREJECTED = UA_STATUSCODE_BADSECURITYPOLICYREJECTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADTOOMANYSESSIONS = UA_STATUSCODE_BADTOOMANYSESSIONS; +static const UA_StatusCode RS_UA_STATUSCODE_BADUSERSIGNATUREINVALID = UA_STATUSCODE_BADUSERSIGNATUREINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADAPPLICATIONSIGNATUREINVALID = UA_STATUSCODE_BADAPPLICATIONSIGNATUREINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOVALIDCERTIFICATES = UA_STATUSCODE_BADNOVALIDCERTIFICATES; +static const UA_StatusCode RS_UA_STATUSCODE_BADIDENTITYCHANGENOTSUPPORTED = UA_STATUSCODE_BADIDENTITYCHANGENOTSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTCANCELLEDBYREQUEST = UA_STATUSCODE_BADREQUESTCANCELLEDBYREQUEST; +static const UA_StatusCode RS_UA_STATUSCODE_BADPARENTNODEIDINVALID = UA_STATUSCODE_BADPARENTNODEIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADREFERENCENOTALLOWED = UA_STATUSCODE_BADREFERENCENOTALLOWED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODEIDREJECTED = UA_STATUSCODE_BADNODEIDREJECTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODEIDEXISTS = UA_STATUSCODE_BADNODEIDEXISTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODECLASSINVALID = UA_STATUSCODE_BADNODECLASSINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADBROWSENAMEINVALID = UA_STATUSCODE_BADBROWSENAMEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADBROWSENAMEDUPLICATED = UA_STATUSCODE_BADBROWSENAMEDUPLICATED; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODEATTRIBUTESINVALID = UA_STATUSCODE_BADNODEATTRIBUTESINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADTYPEDEFINITIONINVALID = UA_STATUSCODE_BADTYPEDEFINITIONINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADSOURCENODEIDINVALID = UA_STATUSCODE_BADSOURCENODEIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADTARGETNODEIDINVALID = UA_STATUSCODE_BADTARGETNODEIDINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADDUPLICATEREFERENCENOTALLOWED = UA_STATUSCODE_BADDUPLICATEREFERENCENOTALLOWED; +static const UA_StatusCode RS_UA_STATUSCODE_BADINVALIDSELFREFERENCE = UA_STATUSCODE_BADINVALIDSELFREFERENCE; +static const UA_StatusCode RS_UA_STATUSCODE_BADREFERENCELOCALONLY = UA_STATUSCODE_BADREFERENCELOCALONLY; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODELETERIGHTS = UA_STATUSCODE_BADNODELETERIGHTS; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINREFERENCENOTDELETED = UA_STATUSCODE_UNCERTAINREFERENCENOTDELETED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSERVERINDEXINVALID = UA_STATUSCODE_BADSERVERINDEXINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADVIEWIDUNKNOWN = UA_STATUSCODE_BADVIEWIDUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADVIEWTIMESTAMPINVALID = UA_STATUSCODE_BADVIEWTIMESTAMPINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADVIEWPARAMETERMISMATCH = UA_STATUSCODE_BADVIEWPARAMETERMISMATCH; +static const UA_StatusCode RS_UA_STATUSCODE_BADVIEWVERSIONINVALID = UA_STATUSCODE_BADVIEWVERSIONINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINNOTALLNODESAVAILABLE = UA_STATUSCODE_UNCERTAINNOTALLNODESAVAILABLE; +static const UA_StatusCode RS_UA_STATUSCODE_GOODRESULTSMAYBEINCOMPLETE = UA_STATUSCODE_GOODRESULTSMAYBEINCOMPLETE; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTTYPEDEFINITION = UA_STATUSCODE_BADNOTTYPEDEFINITION; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINREFERENCEOUTOFSERVER = UA_STATUSCODE_UNCERTAINREFERENCEOUTOFSERVER; +static const UA_StatusCode RS_UA_STATUSCODE_BADTOOMANYMATCHES = UA_STATUSCODE_BADTOOMANYMATCHES; +static const UA_StatusCode RS_UA_STATUSCODE_BADQUERYTOOCOMPLEX = UA_STATUSCODE_BADQUERYTOOCOMPLEX; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOMATCH = UA_STATUSCODE_BADNOMATCH; +static const UA_StatusCode RS_UA_STATUSCODE_BADMAXAGEINVALID = UA_STATUSCODE_BADMAXAGEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADSECURITYMODEINSUFFICIENT = UA_STATUSCODE_BADSECURITYMODEINSUFFICIENT; +static const UA_StatusCode RS_UA_STATUSCODE_BADHISTORYOPERATIONINVALID = UA_STATUSCODE_BADHISTORYOPERATIONINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADHISTORYOPERATIONUNSUPPORTED = UA_STATUSCODE_BADHISTORYOPERATIONUNSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADINVALIDTIMESTAMPARGUMENT = UA_STATUSCODE_BADINVALIDTIMESTAMPARGUMENT; +static const UA_StatusCode RS_UA_STATUSCODE_BADWRITENOTSUPPORTED = UA_STATUSCODE_BADWRITENOTSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADTYPEMISMATCH = UA_STATUSCODE_BADTYPEMISMATCH; +static const UA_StatusCode RS_UA_STATUSCODE_BADMETHODINVALID = UA_STATUSCODE_BADMETHODINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADARGUMENTSMISSING = UA_STATUSCODE_BADARGUMENTSMISSING; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTEXECUTABLE = UA_STATUSCODE_BADNOTEXECUTABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADTOOMANYSUBSCRIPTIONS = UA_STATUSCODE_BADTOOMANYSUBSCRIPTIONS; +static const UA_StatusCode RS_UA_STATUSCODE_BADTOOMANYPUBLISHREQUESTS = UA_STATUSCODE_BADTOOMANYPUBLISHREQUESTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOSUBSCRIPTION = UA_STATUSCODE_BADNOSUBSCRIPTION; +static const UA_StatusCode RS_UA_STATUSCODE_BADSEQUENCENUMBERUNKNOWN = UA_STATUSCODE_BADSEQUENCENUMBERUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_GOODRETRANSMISSIONQUEUENOTSUPPORTED = UA_STATUSCODE_GOODRETRANSMISSIONQUEUENOTSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADMESSAGENOTAVAILABLE = UA_STATUSCODE_BADMESSAGENOTAVAILABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADINSUFFICIENTCLIENTPROFILE = UA_STATUSCODE_BADINSUFFICIENTCLIENTPROFILE; +static const UA_StatusCode RS_UA_STATUSCODE_BADSTATENOTACTIVE = UA_STATUSCODE_BADSTATENOTACTIVE; +static const UA_StatusCode RS_UA_STATUSCODE_BADALREADYEXISTS = UA_STATUSCODE_BADALREADYEXISTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADTCPSERVERTOOBUSY = UA_STATUSCODE_BADTCPSERVERTOOBUSY; +static const UA_StatusCode RS_UA_STATUSCODE_BADTCPMESSAGETYPEINVALID = UA_STATUSCODE_BADTCPMESSAGETYPEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADTCPSECURECHANNELUNKNOWN = UA_STATUSCODE_BADTCPSECURECHANNELUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADTCPMESSAGETOOLARGE = UA_STATUSCODE_BADTCPMESSAGETOOLARGE; +static const UA_StatusCode RS_UA_STATUSCODE_BADTCPNOTENOUGHRESOURCES = UA_STATUSCODE_BADTCPNOTENOUGHRESOURCES; +static const UA_StatusCode RS_UA_STATUSCODE_BADTCPINTERNALERROR = UA_STATUSCODE_BADTCPINTERNALERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADTCPENDPOINTURLINVALID = UA_STATUSCODE_BADTCPENDPOINTURLINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTINTERRUPTED = UA_STATUSCODE_BADREQUESTINTERRUPTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTTIMEOUT = UA_STATUSCODE_BADREQUESTTIMEOUT; +static const UA_StatusCode RS_UA_STATUSCODE_BADSECURECHANNELCLOSED = UA_STATUSCODE_BADSECURECHANNELCLOSED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSECURECHANNELTOKENUNKNOWN = UA_STATUSCODE_BADSECURECHANNELTOKENUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADSEQUENCENUMBERINVALID = UA_STATUSCODE_BADSEQUENCENUMBERINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADPROTOCOLVERSIONUNSUPPORTED = UA_STATUSCODE_BADPROTOCOLVERSIONUNSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONFIGURATIONERROR = UA_STATUSCODE_BADCONFIGURATIONERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOTCONNECTED = UA_STATUSCODE_BADNOTCONNECTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADDEVICEFAILURE = UA_STATUSCODE_BADDEVICEFAILURE; +static const UA_StatusCode RS_UA_STATUSCODE_BADSENSORFAILURE = UA_STATUSCODE_BADSENSORFAILURE; +static const UA_StatusCode RS_UA_STATUSCODE_BADOUTOFSERVICE = UA_STATUSCODE_BADOUTOFSERVICE; +static const UA_StatusCode RS_UA_STATUSCODE_BADDEADBANDFILTERINVALID = UA_STATUSCODE_BADDEADBANDFILTERINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINNOCOMMUNICATIONLASTUSABLEVALUE = UA_STATUSCODE_UNCERTAINNOCOMMUNICATIONLASTUSABLEVALUE; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINLASTUSABLEVALUE = UA_STATUSCODE_UNCERTAINLASTUSABLEVALUE; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINSUBSTITUTEVALUE = UA_STATUSCODE_UNCERTAINSUBSTITUTEVALUE; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAININITIALVALUE = UA_STATUSCODE_UNCERTAININITIALVALUE; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINSENSORNOTACCURATE = UA_STATUSCODE_UNCERTAINSENSORNOTACCURATE; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINENGINEERINGUNITSEXCEEDED = UA_STATUSCODE_UNCERTAINENGINEERINGUNITSEXCEEDED; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINSUBNORMAL = UA_STATUSCODE_UNCERTAINSUBNORMAL; +static const UA_StatusCode RS_UA_STATUSCODE_GOODLOCALOVERRIDE = UA_STATUSCODE_GOODLOCALOVERRIDE; +static const UA_StatusCode RS_UA_STATUSCODE_BADREFRESHINPROGRESS = UA_STATUSCODE_BADREFRESHINPROGRESS; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONDITIONALREADYDISABLED = UA_STATUSCODE_BADCONDITIONALREADYDISABLED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONDITIONALREADYENABLED = UA_STATUSCODE_BADCONDITIONALREADYENABLED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONDITIONDISABLED = UA_STATUSCODE_BADCONDITIONDISABLED; +static const UA_StatusCode RS_UA_STATUSCODE_BADEVENTIDUNKNOWN = UA_STATUSCODE_BADEVENTIDUNKNOWN; +static const UA_StatusCode RS_UA_STATUSCODE_BADEVENTNOTACKNOWLEDGEABLE = UA_STATUSCODE_BADEVENTNOTACKNOWLEDGEABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADDIALOGNOTACTIVE = UA_STATUSCODE_BADDIALOGNOTACTIVE; +static const UA_StatusCode RS_UA_STATUSCODE_BADDIALOGRESPONSEINVALID = UA_STATUSCODE_BADDIALOGRESPONSEINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONDITIONBRANCHALREADYACKED = UA_STATUSCODE_BADCONDITIONBRANCHALREADYACKED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONDITIONBRANCHALREADYCONFIRMED = UA_STATUSCODE_BADCONDITIONBRANCHALREADYCONFIRMED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONDITIONALREADYSHELVED = UA_STATUSCODE_BADCONDITIONALREADYSHELVED; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONDITIONNOTSHELVED = UA_STATUSCODE_BADCONDITIONNOTSHELVED; +static const UA_StatusCode RS_UA_STATUSCODE_BADSHELVINGTIMEOUTOFRANGE = UA_STATUSCODE_BADSHELVINGTIMEOUTOFRANGE; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODATA = UA_STATUSCODE_BADNODATA; +static const UA_StatusCode RS_UA_STATUSCODE_BADBOUNDNOTFOUND = UA_STATUSCODE_BADBOUNDNOTFOUND; +static const UA_StatusCode RS_UA_STATUSCODE_BADBOUNDNOTSUPPORTED = UA_STATUSCODE_BADBOUNDNOTSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADDATALOST = UA_STATUSCODE_BADDATALOST; +static const UA_StatusCode RS_UA_STATUSCODE_BADDATAUNAVAILABLE = UA_STATUSCODE_BADDATAUNAVAILABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADENTRYEXISTS = UA_STATUSCODE_BADENTRYEXISTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADNOENTRYEXISTS = UA_STATUSCODE_BADNOENTRYEXISTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADTIMESTAMPNOTSUPPORTED = UA_STATUSCODE_BADTIMESTAMPNOTSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODENTRYINSERTED = UA_STATUSCODE_GOODENTRYINSERTED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODENTRYREPLACED = UA_STATUSCODE_GOODENTRYREPLACED; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINDATASUBNORMAL = UA_STATUSCODE_UNCERTAINDATASUBNORMAL; +static const UA_StatusCode RS_UA_STATUSCODE_GOODNODATA = UA_STATUSCODE_GOODNODATA; +static const UA_StatusCode RS_UA_STATUSCODE_GOODMOREDATA = UA_STATUSCODE_GOODMOREDATA; +static const UA_StatusCode RS_UA_STATUSCODE_BADAGGREGATELISTMISMATCH = UA_STATUSCODE_BADAGGREGATELISTMISMATCH; +static const UA_StatusCode RS_UA_STATUSCODE_BADAGGREGATENOTSUPPORTED = UA_STATUSCODE_BADAGGREGATENOTSUPPORTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADAGGREGATEINVALIDINPUTS = UA_STATUSCODE_BADAGGREGATEINVALIDINPUTS; +static const UA_StatusCode RS_UA_STATUSCODE_BADAGGREGATECONFIGURATIONREJECTED = UA_STATUSCODE_BADAGGREGATECONFIGURATIONREJECTED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODDATAIGNORED = UA_STATUSCODE_GOODDATAIGNORED; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTNOTALLOWED = UA_STATUSCODE_BADREQUESTNOTALLOWED; +static const UA_StatusCode RS_UA_STATUSCODE_BADREQUESTNOTCOMPLETE = UA_STATUSCODE_BADREQUESTNOTCOMPLETE; +static const UA_StatusCode RS_UA_STATUSCODE_BADTRANSACTIONPENDING = UA_STATUSCODE_BADTRANSACTIONPENDING; +static const UA_StatusCode RS_UA_STATUSCODE_BADTICKETREQUIRED = UA_STATUSCODE_BADTICKETREQUIRED; +static const UA_StatusCode RS_UA_STATUSCODE_BADTICKETINVALID = UA_STATUSCODE_BADTICKETINVALID; +static const UA_StatusCode RS_UA_STATUSCODE_GOODEDITED = UA_STATUSCODE_GOODEDITED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODPOSTACTIONFAILED = UA_STATUSCODE_GOODPOSTACTIONFAILED; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINDOMINANTVALUECHANGED = UA_STATUSCODE_UNCERTAINDOMINANTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODDEPENDENTVALUECHANGED = UA_STATUSCODE_GOODDEPENDENTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_BADDOMINANTVALUECHANGED = UA_STATUSCODE_BADDOMINANTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_UNCERTAINDEPENDENTVALUECHANGED = UA_STATUSCODE_UNCERTAINDEPENDENTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_BADDEPENDENTVALUECHANGED = UA_STATUSCODE_BADDEPENDENTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODEDITED_DEPENDENTVALUECHANGED = UA_STATUSCODE_GOODEDITED_DEPENDENTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODEDITED_DOMINANTVALUECHANGED = UA_STATUSCODE_GOODEDITED_DOMINANTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODEDITED_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED = UA_STATUSCODE_GOODEDITED_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_BADEDITED_OUTOFRANGE = UA_STATUSCODE_BADEDITED_OUTOFRANGE; +static const UA_StatusCode RS_UA_STATUSCODE_BADINITIALVALUE_OUTOFRANGE = UA_STATUSCODE_BADINITIALVALUE_OUTOFRANGE; +static const UA_StatusCode RS_UA_STATUSCODE_BADOUTOFRANGE_DOMINANTVALUECHANGED = UA_STATUSCODE_BADOUTOFRANGE_DOMINANTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_BADEDITED_OUTOFRANGE_DOMINANTVALUECHANGED = UA_STATUSCODE_BADEDITED_OUTOFRANGE_DOMINANTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_BADOUTOFRANGE_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED = UA_STATUSCODE_BADOUTOFRANGE_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_BADEDITED_OUTOFRANGE_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED = UA_STATUSCODE_BADEDITED_OUTOFRANGE_DOMINANTVALUECHANGED_DEPENDENTVALUECHANGED; +static const UA_StatusCode RS_UA_STATUSCODE_GOODCOMMUNICATIONEVENT = UA_STATUSCODE_GOODCOMMUNICATIONEVENT; +static const UA_StatusCode RS_UA_STATUSCODE_GOODSHUTDOWNEVENT = UA_STATUSCODE_GOODSHUTDOWNEVENT; +static const UA_StatusCode RS_UA_STATUSCODE_GOODCALLAGAIN = UA_STATUSCODE_GOODCALLAGAIN; +static const UA_StatusCode RS_UA_STATUSCODE_GOODNONCRITICALTIMEOUT = UA_STATUSCODE_GOODNONCRITICALTIMEOUT; +static const UA_StatusCode RS_UA_STATUSCODE_BADINVALIDARGUMENT = UA_STATUSCODE_BADINVALIDARGUMENT; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONNECTIONREJECTED = UA_STATUSCODE_BADCONNECTIONREJECTED; +static const UA_StatusCode RS_UA_STATUSCODE_BADDISCONNECT = UA_STATUSCODE_BADDISCONNECT; +static const UA_StatusCode RS_UA_STATUSCODE_BADCONNECTIONCLOSED = UA_STATUSCODE_BADCONNECTIONCLOSED; +static const UA_StatusCode RS_UA_STATUSCODE_BADINVALIDSTATE = UA_STATUSCODE_BADINVALIDSTATE; +static const UA_StatusCode RS_UA_STATUSCODE_BADENDOFSTREAM = UA_STATUSCODE_BADENDOFSTREAM; +static const UA_StatusCode RS_UA_STATUSCODE_BADNODATAAVAILABLE = UA_STATUSCODE_BADNODATAAVAILABLE; +static const UA_StatusCode RS_UA_STATUSCODE_BADWAITINGFORRESPONSE = UA_STATUSCODE_BADWAITINGFORRESPONSE; +static const UA_StatusCode RS_UA_STATUSCODE_BADOPERATIONABANDONED = UA_STATUSCODE_BADOPERATIONABANDONED; +static const UA_StatusCode RS_UA_STATUSCODE_BADEXPECTEDSTREAMTOBLOCK = UA_STATUSCODE_BADEXPECTEDSTREAMTOBLOCK; +static const UA_StatusCode RS_UA_STATUSCODE_BADWOULDBLOCK = UA_STATUSCODE_BADWOULDBLOCK; +static const UA_StatusCode RS_UA_STATUSCODE_BADSYNTAXERROR = UA_STATUSCODE_BADSYNTAXERROR; +static const UA_StatusCode RS_UA_STATUSCODE_BADMAXCONNECTIONSREACHED = UA_STATUSCODE_BADMAXCONNECTIONSREACHED;