open62541pp 0.19.0
C++ wrapper of open62541
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Related Symbols | List of all members
opcua::Wrapper< T, Handler > Class Template Reference

#include <wrapper.hpp>

Inherits opcua::detail::WrapperDestructorMixin< WrapperType, Clear >.

Inherited by opcua::ByteString, opcua::DataValue, opcua::DiagnosticInfo, opcua::ExpandedNodeId, opcua::ExtensionObject, opcua::LocalizedText, opcua::NodeId, opcua::QualifiedName, opcua::String, opcua::TypeWrapper< T, Index >, opcua::Variant, opcua::XmlElement, opcua::ua::AddNodesItem, opcua::ua::AddNodesRequest, opcua::ua::AddNodesResponse, opcua::ua::AddNodesResult, opcua::ua::AddReferencesItem, opcua::ua::AddReferencesRequest, opcua::ua::AddReferencesResponse, opcua::ua::AggregateFilter, opcua::ua::AnonymousIdentityToken, opcua::ua::ApplicationDescription, opcua::ua::Argument, opcua::ua::AttributeOperand, opcua::ua::AxisInformation, opcua::ua::BrowseDescription, opcua::ua::BrowseNextRequest, opcua::ua::BrowseNextResponse, opcua::ua::BrowsePath, opcua::ua::BrowsePathResult, opcua::ua::BrowsePathTarget, opcua::ua::BrowseRequest, opcua::ua::BrowseResponse, opcua::ua::BrowseResult, opcua::ua::BuildInfo, opcua::ua::CallMethodRequest, opcua::ua::CallMethodResult, opcua::ua::CallRequest, opcua::ua::CallResponse, opcua::ua::ComplexNumberType, opcua::ua::ContentFilter, opcua::ua::ContentFilterElement, opcua::ua::CreateMonitoredItemsRequest, opcua::ua::CreateMonitoredItemsResponse, opcua::ua::CreateSubscriptionRequest, opcua::ua::CreateSubscriptionResponse, opcua::ua::DataChangeFilter, opcua::ua::DataTypeAttributes, opcua::ua::DeleteMonitoredItemsRequest, opcua::ua::DeleteMonitoredItemsResponse, opcua::ua::DeleteNodesItem, opcua::ua::DeleteNodesRequest, opcua::ua::DeleteNodesResponse, opcua::ua::DeleteReferencesItem, opcua::ua::DeleteReferencesRequest, opcua::ua::DeleteReferencesResponse, opcua::ua::DeleteSubscriptionsRequest, opcua::ua::DeleteSubscriptionsResponse, opcua::ua::DoubleComplexNumberType, opcua::ua::EUInformation, opcua::ua::ElementOperand, opcua::ua::EndpointDescription, opcua::ua::EnumDefinition, opcua::ua::EnumField, opcua::ua::EnumValueType, opcua::ua::EventFilter, opcua::ua::IssuedIdentityToken, opcua::ua::LiteralOperand, opcua::ua::MethodAttributes, opcua::ua::ModifyMonitoredItemsRequest, opcua::ua::ModifyMonitoredItemsResponse, opcua::ua::ModifySubscriptionRequest, opcua::ua::ModifySubscriptionResponse, opcua::ua::MonitoredItemCreateRequest, opcua::ua::MonitoredItemCreateResult, opcua::ua::MonitoredItemModifyRequest, opcua::ua::MonitoredItemModifyResult, opcua::ua::MonitoringParameters, opcua::ua::NodeAttributes, opcua::ua::ObjectAttributes, opcua::ua::ObjectTypeAttributes, opcua::ua::Range, opcua::ua::ReadRequest, opcua::ua::ReadResponse, opcua::ua::ReadValueId, opcua::ua::ReferenceDescription, opcua::ua::ReferenceTypeAttributes, opcua::ua::RegisterNodesRequest, opcua::ua::RegisterNodesResponse, opcua::ua::RelativePath, opcua::ua::RelativePathElement, opcua::ua::RequestHeader, opcua::ua::ResponseHeader, opcua::ua::SetMonitoringModeRequest, opcua::ua::SetMonitoringModeResponse, opcua::ua::SetPublishingModeRequest, opcua::ua::SetPublishingModeResponse, opcua::ua::SetTriggeringRequest, opcua::ua::SetTriggeringResponse, opcua::ua::SimpleAttributeOperand, opcua::ua::StatusChangeNotification, opcua::ua::StructureDefinition, opcua::ua::StructureField, opcua::ua::TranslateBrowsePathsToNodeIdsRequest, opcua::ua::TranslateBrowsePathsToNodeIdsResponse, opcua::ua::UnregisterNodesRequest, opcua::ua::UnregisterNodesResponse, opcua::ua::UserIdentityToken, opcua::ua::UserNameIdentityToken, opcua::ua::UserTokenPolicy, opcua::ua::VariableAttributes, opcua::ua::VariableTypeAttributes, opcua::ua::ViewAttributes, opcua::ua::ViewDescription, opcua::ua::WriteRequest, opcua::ua::WriteResponse, opcua::ua::WriteValue, opcua::ua::X509IdentityToken, and opcua::ua::XVType.

Detailed Description

template<typename T, typename Handler = TypeHandler<T>>
class opcua::Wrapper< T, Handler >

Template base class to wrap (native) objects.

Template Parameters
TType of the native object.
HandlerPolicy type that defines object operations. It must define:
  • static T copy(const T&) to copy the wrapped object,
  • static T move(T&&) noexcept to move the wrapped object,
  • static void clear(T&) noexcept to clear the wrapped object (optional). If clear is not defined, the wrapper does not define a destructor.

The default TypeHandler provides standard copy/move behavior. It can be specialized for custom behavior per type. Use TypeHandlerNative for native open62541 types. WrapperNative is a convenience alias for Wrapper using TypeHandlerNative.

Warning
No virtual destructor is defined; do not implement a destructor in derived classes.

Definition at line 132 of file wrapper.hpp.

Public Types

using NativeType = T
 
using HandlerType = Handler
 

Public Member Functions

constexpr Wrapper () noexcept=default
 
constexpr Wrapper (const Wrapper &other)
 
constexpr Wrapper (const T &native)
 
constexpr Wrapper (Wrapper &&other) noexcept
 
constexpr Wrapper (T &&native) noexcept
 
 ~Wrapper () noexcept=default
 
constexpr Wrapperoperator= (const Wrapper &other)
 
constexpr Wrapperoperator= (const T &native)
 
constexpr Wrapperoperator= (Wrapper &&other) noexcept
 
constexpr Wrapperoperator= (T &&native) noexcept
 
constexpr operator T& () noexcept
 
constexpr operator const T & () const noexcept
 
constexpr T * operator-> () noexcept
 
constexpr const T * operator-> () const noexcept
 
constexpr T * handle () noexcept
 
constexpr const T * handle () const noexcept
 
constexpr void swap (Wrapper &other) noexcept
 
constexpr void swap (T &native) noexcept
 

Protected Member Functions

constexpr const T & native () const noexcept
 
constexpr T & native () noexcept
 
constexpr void clear () noexcept
 

Related Symbols

(Note that these are not member symbols.)

template<typename T >
constexpr T * asWrapper (typename T::NativeType *native) noexcept
 
template<typename T >
constexpr const T * asWrapper (const typename T::NativeType *native) noexcept
 
template<typename T >
constexpr T & asWrapper (typename T::NativeType &native) noexcept
 
template<typename T >
constexpr const T & asWrapper (const typename T::NativeType &native) noexcept
 
template<typename T >
constexpr T::NativeType * asNative (T *wrapper) noexcept
 
template<typename T >
constexpr const T::NativeType * asNative (const T *wrapper) noexcept
 
template<typename T >
constexpr T::NativeType & asNative (T &wrapper) noexcept
 
template<typename T >
constexpr const T::NativeType & asNative (const T &wrapper) noexcept
 

Member Typedef Documentation

◆ HandlerType

template<typename T , typename Handler = TypeHandler<T>>
using opcua::Wrapper< T, Handler >::HandlerType = Handler

Definition at line 142 of file wrapper.hpp.

◆ NativeType

template<typename T , typename Handler = TypeHandler<T>>
using opcua::Wrapper< T, Handler >::NativeType = T

Definition at line 141 of file wrapper.hpp.

Constructor & Destructor Documentation

◆ Wrapper() [1/5]

template<typename T , typename Handler = TypeHandler<T>>
constexpr opcua::Wrapper< T, Handler >::Wrapper ( )
constexprdefaultnoexcept

◆ Wrapper() [2/5]

template<typename T , typename Handler = TypeHandler<T>>
constexpr opcua::Wrapper< T, Handler >::Wrapper ( const Wrapper< T, Handler > &  other)
inlineconstexpr

Copy constructor.

Definition at line 147 of file wrapper.hpp.

◆ Wrapper() [3/5]

template<typename T , typename Handler = TypeHandler<T>>
constexpr opcua::Wrapper< T, Handler >::Wrapper ( const T &  native)
inlineexplicitconstexpr

Copy constructor with native object.

Definition at line 151 of file wrapper.hpp.

◆ Wrapper() [4/5]

template<typename T , typename Handler = TypeHandler<T>>
constexpr opcua::Wrapper< T, Handler >::Wrapper ( Wrapper< T, Handler > &&  other)
inlineconstexprnoexcept

Move constructor.

Definition at line 155 of file wrapper.hpp.

◆ Wrapper() [5/5]

template<typename T , typename Handler = TypeHandler<T>>
constexpr opcua::Wrapper< T, Handler >::Wrapper ( T &&  native)
inlineconstexprnoexcept

Move constructor with native object.

Definition at line 159 of file wrapper.hpp.

◆ ~Wrapper()

template<typename T , typename Handler = TypeHandler<T>>
opcua::Wrapper< T, Handler >::~Wrapper ( )
defaultnoexcept

Member Function Documentation

◆ clear()

template<typename T , typename Handler = TypeHandler<T>>
constexpr void opcua::Wrapper< T, Handler >::clear ( )
inlineconstexprprotectednoexcept

◆ handle() [1/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr const T * opcua::Wrapper< T, Handler >::handle ( ) const
inlineconstexprnoexcept

Return pointer to native object.

Definition at line 226 of file wrapper.hpp.

◆ handle() [2/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr T * opcua::Wrapper< T, Handler >::handle ( )
inlineconstexprnoexcept

◆ native() [1/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr const T & opcua::Wrapper< T, Handler >::native ( ) const
inlineconstexprprotectednoexcept

◆ native() [2/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr T & opcua::Wrapper< T, Handler >::native ( )
inlineconstexprprotectednoexcept

Definition at line 247 of file wrapper.hpp.

◆ operator const T &()

template<typename T , typename Handler = TypeHandler<T>>
constexpr opcua::Wrapper< T, Handler >::operator const T & ( ) const
inlineconstexprnoexcept

Implicit conversion to native object.

Definition at line 206 of file wrapper.hpp.

◆ operator T&()

template<typename T , typename Handler = TypeHandler<T>>
constexpr opcua::Wrapper< T, Handler >::operator T& ( )
inlineconstexprnoexcept

Implicit conversion to native object.

Definition at line 201 of file wrapper.hpp.

◆ operator->() [1/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr const T * opcua::Wrapper< T, Handler >::operator-> ( ) const
inlineconstexprnoexcept

Member access to native object.

Definition at line 216 of file wrapper.hpp.

◆ operator->() [2/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr T * opcua::Wrapper< T, Handler >::operator-> ( )
inlineconstexprnoexcept

Member access to native object.

Definition at line 211 of file wrapper.hpp.

◆ operator=() [1/4]

template<typename T , typename Handler = TypeHandler<T>>
constexpr Wrapper & opcua::Wrapper< T, Handler >::operator= ( const T &  native)
inlineconstexpr

Copy assignment with native object.

Definition at line 174 of file wrapper.hpp.

◆ operator=() [2/4]

template<typename T , typename Handler = TypeHandler<T>>
constexpr Wrapper & opcua::Wrapper< T, Handler >::operator= ( const Wrapper< T, Handler > &  other)
inlineconstexpr

Copy assignment.

Definition at line 165 of file wrapper.hpp.

◆ operator=() [3/4]

template<typename T , typename Handler = TypeHandler<T>>
constexpr Wrapper & opcua::Wrapper< T, Handler >::operator= ( T &&  native)
inlineconstexprnoexcept

Move assignment with native object.

Definition at line 192 of file wrapper.hpp.

◆ operator=() [4/4]

template<typename T , typename Handler = TypeHandler<T>>
constexpr Wrapper & opcua::Wrapper< T, Handler >::operator= ( Wrapper< T, Handler > &&  other)
inlineconstexprnoexcept

Move assignment.

Definition at line 183 of file wrapper.hpp.

◆ swap() [1/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr void opcua::Wrapper< T, Handler >::swap ( T &  native)
inlineconstexprnoexcept

Swap with native object.

Definition at line 237 of file wrapper.hpp.

◆ swap() [2/2]

template<typename T , typename Handler = TypeHandler<T>>
constexpr void opcua::Wrapper< T, Handler >::swap ( Wrapper< T, Handler > &  other)
inlineconstexprnoexcept

Swap with wrapper object.

Definition at line 231 of file wrapper.hpp.

Referenced by opcua::Wrapper< T, Handler >::swap(), and opcua::Wrapper< T, Handler >::swap().