10#include "open62541pp/config.hpp"
24namespace opcua::detail {
27 UniqueOrRawPtr<ValueCallbackBase> valueCallback;
28 UniqueOrRawPtr<DataSourceBase> dataSource;
30#ifdef UA_ENABLE_METHODCALLS
32 std::function<void(Span<const Variant> input, Span<Variant> output)>,
35 Span<const Variant> input,
37 const NodeId& methodId,
38 const NodeId& objectId
45struct SessionRegistry {
46 using Context =
void*;
50 std::map<NodeId, Context> sessions;
58 ExceptionCatcher exceptionCatcher;
59 SessionRegistry sessionRegistry;
60 std::atomic<bool> running{
false};
63#ifdef UA_ENABLE_SUBSCRIPTIONS
66 using SubMonId = std::pair<SubId, MonId>;
67 ContextMap<SubMonId, services::detail::MonitoredItemContext> monitoredItems;
70 ContextMap<NodeId, NodeContext> nodeContexts;
std::variant< std::function< void(Span< const Variant > input, Span< Variant > output)>, std::function< StatusCode(Session &session, Span< const Variant > input, Span< Variant > output, const NodeId &methodId, const NodeId &objectId)> > MethodCallback
Method callback.
uint32_t IntegerId
IntegerId.
void(* closeSession)(UA_Server *server, UA_AccessControl *ac, const UA_NodeId *sessionId, void *sessionContext)
UA_StatusCode(* activateSession)(UA_Server *server, UA_AccessControl *ac, const UA_EndpointDescription *endpointDescription, const UA_ByteString *secureChannelRemoteCertificate, const UA_NodeId *sessionId, const UA_ExtensionObject *userIdentityToken, void **sessionContext)