open62541++ 0.13.0
C++ wrapper of open62541
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
opcua::Server Class Reference

#include <Server.h>

Detailed Description

High-level server class.

Exposes the most common functionality. Use the handle() method to get access the underlying UA_Server instance and use the full power of open6254.

Examples
custom_datatypes/server_custom_datatypes.cpp, events/server_events.cpp, method/server_method.cpp, server.cpp, server_accesscontrol.cpp, server_datasource.cpp, server_instantiation.cpp, server_logger.cpp, server_minimal.cpp, and server_valuecallback.cpp.

Definition at line 61 of file Server.h.

Public Member Functions

 Server (uint16_t port=4840, ByteString certificate={}, Logger logger=nullptr)
 
 Server (uint16_t port, const ByteString &certificate, const ByteString &privateKey, Span< const ByteString > trustList, Span< const ByteString > issuerList, Span< const ByteString > revocationList={})
 
 ~Server ()
 
 Server (const Server &)=delete
 
 Server (Server &&) noexcept=default
 
Serveroperator= (const Server &)=delete
 
Serveroperator= (Server &&) noexcept=default
 
void setLogger (Logger logger)
 
void setAccessControl (AccessControlBase &accessControl)
 
void setAccessControl (std::unique_ptr< AccessControlBase > accessControl)
 
void setCustomHostname (std::string_view hostname)
 
void setApplicationName (std::string_view name)
 
void setApplicationUri (std::string_view uri)
 
void setProductUri (std::string_view uri)
 
std::vector< SessiongetSessions ()
 
std::vector< std::string > getNamespaceArray ()
 
NamespaceIndex registerNamespace (std::string_view uri)
 
void setCustomDataTypes (std::vector< DataType > dataTypes)
 
void setVariableNodeValueCallback (const NodeId &id, ValueCallback callback)
 
void setVariableNodeValueBackend (const NodeId &id, ValueBackendDataSource backend)
 
Subscription< ServercreateSubscription () noexcept
 
Event createEvent (const NodeId &eventType=ObjectTypeId::BaseEventType)
 
uint16_t runIterate ()
 
void run ()
 
void stop ()
 
bool isRunning () const noexcept
 
Node< ServergetNode (NodeId id)
 
Node< ServergetRootNode ()
 
Node< ServergetObjectsNode ()
 
Node< ServergetTypesNode ()
 
Node< ServergetViewsNode ()
 
UA_Serverhandle () noexcept
 
const UA_Serverhandle () const noexcept
 

Friends

detail::ServerConnection & detail::getConnection (Server &server) noexcept
 

Constructor & Destructor Documentation

◆ Server() [1/4]

opcua::Server::Server ( uint16_t port = 4840,
ByteString certificate = {},
Logger logger = nullptr )
explicit

Create server with default configuration (no encryption).

Security policies:

Parameters
portPort number
certificateOptional X.509 v3 certificate in DER encoded format
loggerCustom log function. If the passed function is empty, the default logger is used.

◆ Server() [2/4]

opcua::Server::Server ( uint16_t port,
const ByteString & certificate,
const ByteString & privateKey,
Span< const ByteString > trustList,
Span< const ByteString > issuerList,
Span< const ByteString > revocationList = {} )

Create server with encryption enabled (PKI).

Security policies:

Parameters
portPort number
certificateX.509 v3 certificate in DER encoded format
privateKeyPrivate key in PEM encoded format
trustListList of trusted certificates in DER encoded format
issuerListList of issuer certificates (i.e. CAs) in DER encoded format
revocationListCertificate revocation lists (CRL) in DER encoded format
See also
https://reference.opcfoundation.org/Core/Part2/v105/docs/8
https://reference.opcfoundation.org/Core/Part4/v105/docs/6.1
https://reference.opcfoundation.org/Core/Part6/v105/docs/6.2

◆ ~Server()

opcua::Server::~Server ( )

◆ Server() [3/4]

opcua::Server::Server ( const Server & )
delete

◆ Server() [4/4]

opcua::Server::Server ( Server && )
defaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

Server & opcua::Server::operator= ( const Server & )
delete

◆ operator=() [2/2]

Server & opcua::Server::operator= ( Server && )
defaultnoexcept

◆ setLogger()

void opcua::Server::setLogger ( Logger logger)

Set custom logging function.

Does nothing if the passed function is empty or a nullptr.

Examples
server_logger.cpp.

◆ setAccessControl() [1/2]

void opcua::Server::setAccessControl ( AccessControlBase & accessControl)

Set custom access control.

Note
Supported since open62541 v1.3
Examples
server_accesscontrol.cpp.

◆ setAccessControl() [2/2]

void opcua::Server::setAccessControl ( std::unique_ptr< AccessControlBase > accessControl)

Set custom access control (transfer ownership to Server).

Note
Supported since open62541 v1.3

◆ setCustomHostname()

void opcua::Server::setCustomHostname ( std::string_view hostname)

Set custom hostname, default: system's host name.

◆ setApplicationName()

void opcua::Server::setApplicationName ( std::string_view name)

Set application name, default: open62541-based OPC UA Application.

Examples
server.cpp.

◆ setApplicationUri()

void opcua::Server::setApplicationUri ( std::string_view uri)

Set application URI, default: urn:open62541.server.application.

Examples
server.cpp.

◆ setProductUri()

void opcua::Server::setProductUri ( std::string_view uri)

Set product URI, default: http://open62541.org.

Examples
server.cpp.

◆ getSessions()

std::vector< Session > opcua::Server::getSessions ( )

Get active server session.

Note
Supported since open62541 v1.3

◆ getNamespaceArray()

std::vector< std::string > opcua::Server::getNamespaceArray ( )

Get all defined namespaces.

◆ registerNamespace()

NamespaceIndex opcua::Server::registerNamespace ( std::string_view uri)

Register namespace. The new namespace index will be returned.

◆ setCustomDataTypes()

void opcua::Server::setCustomDataTypes ( std::vector< DataType > dataTypes)

Set custom data types.

All data types provided are automatically considered for decoding of received messages.

Examples
custom_datatypes/server_custom_datatypes.cpp.

◆ setVariableNodeValueCallback()

void opcua::Server::setVariableNodeValueCallback ( const NodeId & id,
ValueCallback callback )

Set value callbacks to execute before every read and after every write operation.

Examples
server_valuecallback.cpp.

◆ setVariableNodeValueBackend()

void opcua::Server::setVariableNodeValueBackend ( const NodeId & id,
ValueBackendDataSource backend )

Set data source backend for variable node.

Examples
server_datasource.cpp.

◆ createSubscription()

Subscription< Server > opcua::Server::createSubscription ( )
noexcept

Create a (pseudo) subscription to monitor local data changes and events.

◆ createEvent()

Event opcua::Server::createEvent ( const NodeId & eventType = ObjectTypeId::BaseEventType)

Create an event object to generate and trigger events.

◆ runIterate()

uint16_t opcua::Server::runIterate ( )

Run a single iteration of the server's main loop.

Returns
Maximum wait period until next Server::runIterate call (in ms)

◆ run()

void opcua::Server::run ( )

◆ stop()

void opcua::Server::stop ( )

Stop the server's main loop.

◆ isRunning()

bool opcua::Server::isRunning ( ) const
noexcept

Check if the server is running.

◆ getNode()

Node< Server > opcua::Server::getNode ( NodeId id)

◆ getRootNode()

Node< Server > opcua::Server::getRootNode ( )

◆ getObjectsNode()

Node< Server > opcua::Server::getObjectsNode ( )

◆ getTypesNode()

Node< Server > opcua::Server::getTypesNode ( )

◆ getViewsNode()

Node< Server > opcua::Server::getViewsNode ( )

◆ handle() [1/2]

UA_Server * opcua::Server::handle ( )
noexcept

◆ handle() [2/2]

const UA_Server * opcua::Server::handle ( ) const
noexcept

Friends And Related Symbol Documentation

◆ detail::getConnection

detail::ServerConnection & detail::getConnection ( Server & server)
friend