26#ifdef UA_ENABLE_PUBSUB_SKS
32#ifdef UA_ENABLE_PUBSUB
35#define UA_PUBSUB_MAXCHANNELS 8
105#define UA_LOG_PDS_INTERNAL(LOGGER, LEVEL, PDS, MSG, ...) \
106 if(UA_LOGLEVEL <= UA_LOGLEVEL_##LEVEL) { \
107 UA_String idStr = UA_STRING_NULL; \
109 UA_NodeId_print(&(PDS)->identifier, &idStr); \
110 UA_LOG_##LEVEL(LOGGER, UA_LOGCATEGORY_PUBSUB, \
111 "DataSet %.*s\t| " MSG "%.0s", (int)idStr.length, \
112 (char*)idStr.data, __VA_ARGS__); \
113 UA_String_clear(&idStr); \
116#define UA_LOG_TRACE_DATASET(LOGGER, PDS, ...) \
117 UA_MACRO_EXPAND(UA_LOG_PDS_INTERNAL(LOGGER, TRACE, PDS, __VA_ARGS__, ""))
118#define UA_LOG_DEBUG_DATASET(LOGGER, PDS, ...) \
119 UA_MACRO_EXPAND(UA_LOG_PDS_INTERNAL(LOGGER, DEBUG, PDS, __VA_ARGS__, ""))
120#define UA_LOG_INFO_DATASET(LOGGER, PDS, ...) \
121 UA_MACRO_EXPAND(UA_LOG_PDS_INTERNAL(LOGGER, INFO, PDS, __VA_ARGS__, ""))
122#define UA_LOG_WARNING_DATASET(LOGGER, PDS, ...) \
123 UA_MACRO_EXPAND(UA_LOG_PDS_INTERNAL(LOGGER, WARNING, PDS, __VA_ARGS__, ""))
124#define UA_LOG_ERROR_DATASET(LOGGER, PDS, ...) \
125 UA_MACRO_EXPAND(UA_LOG_PDS_INTERNAL(LOGGER, ERROR, PDS, __VA_ARGS__, ""))
126#define UA_LOG_FATAL_DATASET(LOGGER, PDS, ...) \
127 UA_MACRO_EXPAND(UA_LOG_PDS_INTERNAL(LOGGER, FATAL, PDS, __VA_ARGS__, ""))
208#define UA_LOG_CONNECTION_INTERNAL(LOGGER, LEVEL, CONNECTION, MSG, ...) \
209 if(UA_LOGLEVEL <= UA_LOGLEVEL_##LEVEL) { \
210 UA_String idStr = UA_STRING_NULL; \
212 UA_NodeId_print(&(CONNECTION)->identifier, &idStr); \
213 UA_LOG_##LEVEL(LOGGER, UA_LOGCATEGORY_PUBSUB, \
214 "Connection %.*s\t| " MSG "%.0s", (int)idStr.length, \
215 (char*)idStr.data, __VA_ARGS__); \
216 UA_String_clear(&idStr); \
219#define UA_LOG_TRACE_CONNECTION(LOGGER, CONNECTION, ...) \
220 UA_MACRO_EXPAND(UA_LOG_CONNECTION_INTERNAL(LOGGER, TRACE, CONNECTION, __VA_ARGS__, ""))
221#define UA_LOG_DEBUG_CONNECTION(LOGGER, CONNECTION, ...) \
222 UA_MACRO_EXPAND(UA_LOG_CONNECTION_INTERNAL(LOGGER, DEBUG, CONNECTION, __VA_ARGS__, ""))
223#define UA_LOG_INFO_CONNECTION(LOGGER, CONNECTION, ...) \
224 UA_MACRO_EXPAND(UA_LOG_CONNECTION_INTERNAL(LOGGER, INFO, CONNECTION, __VA_ARGS__, ""))
225#define UA_LOG_WARNING_CONNECTION(LOGGER, CONNECTION, ...) \
226 UA_MACRO_EXPAND(UA_LOG_CONNECTION_INTERNAL(LOGGER, WARNING, CONNECTION, __VA_ARGS__, ""))
227#define UA_LOG_ERROR_CONNECTION(LOGGER, CONNECTION, ...) \
228 UA_MACRO_EXPAND(UA_LOG_CONNECTION_INTERNAL(LOGGER, ERROR, CONNECTION, __VA_ARGS__, ""))
229#define UA_LOG_FATAL_CONNECTION(LOGGER, CONNECTION, ...) \
230 UA_MACRO_EXPAND(UA_LOG_CONNECTION_INTERNAL(LOGGER, FATAL, CONNECTION, __VA_ARGS__, ""))
298#define UA_LOG_WRITER_INTERNAL(LOGGER, LEVEL, WRITER, MSG, ...) \
299 if(UA_LOGLEVEL <= UA_LOGLEVEL_##LEVEL) { \
300 UA_String idStr = UA_STRING_NULL; \
301 UA_String groupIdStr = UA_STRING_NULL; \
303 UA_NodeId_print(&(WRITER)->identifier, &idStr); \
304 UA_NodeId_print(&(WRITER)->linkedWriterGroup, &groupIdStr); \
306 UA_LOG_##LEVEL(LOGGER, UA_LOGCATEGORY_PUBSUB, \
307 "WriterGroup %.*s\t| Writer %.*s\t| " MSG "%.0s", \
308 (int)groupIdStr.length, (char*)groupIdStr.data, \
309 (int)idStr.length, (char*)idStr.data, \
311 UA_String_clear(&idStr); \
312 UA_String_clear(&groupIdStr); \
315#define UA_LOG_TRACE_WRITER(LOGGER, WRITER, ...) \
316 UA_MACRO_EXPAND(UA_LOG_WRITER_INTERNAL(LOGGER, TRACE, WRITER, __VA_ARGS__, ""))
317#define UA_LOG_DEBUG_WRITER(LOGGER, WRITER, ...) \
318 UA_MACRO_EXPAND(UA_LOG_WRITER_INTERNAL(LOGGER, DEBUG, WRITER, __VA_ARGS__, ""))
319#define UA_LOG_INFO_WRITER(LOGGER, WRITER, ...) \
320 UA_MACRO_EXPAND(UA_LOG_WRITER_INTERNAL(LOGGER, INFO, WRITER, __VA_ARGS__, ""))
321#define UA_LOG_WARNING_WRITER(LOGGER, WRITER, ...) \
322 UA_MACRO_EXPAND(UA_LOG_WRITER_INTERNAL(LOGGER, WARNING, WRITER, __VA_ARGS__, ""))
323#define UA_LOG_ERROR_WRITER(LOGGER, WRITER, ...) \
324 UA_MACRO_EXPAND(UA_LOG_WRITER_INTERNAL(LOGGER, ERROR, WRITER, __VA_ARGS__, ""))
325#define UA_LOG_FATAL_WRITER(LOGGER, WRITER, ...) \
326 UA_MACRO_EXPAND(UA_LOG_WRITER_INTERNAL(LOGGER, FATAL, WRITER, __VA_ARGS__, ""))
354#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
357 void *securityPolicyContext;
358#ifdef UA_ENABLE_PUBSUB_SKS
359 UA_PubSubKeyStorage *keyStorage;
416#define UA_LOG_WRITERGROUP_INTERNAL(LOGGER, LEVEL, WRITERGROUP, MSG, ...) \
417 if(UA_LOGLEVEL <= UA_LOGLEVEL_##LEVEL) { \
418 UA_String idStr = UA_STRING_NULL; \
420 UA_NodeId_print(&(WRITERGROUP)->identifier, &idStr); \
421 UA_LOG_##LEVEL(LOGGER, UA_LOGCATEGORY_PUBSUB, \
422 "WriterGroup %.*s\t| " MSG "%.0s", \
423 (int)idStr.length, (char*)idStr.data, \
425 UA_String_clear(&idStr); \
428#define UA_LOG_TRACE_WRITERGROUP(LOGGER, WRITERGROUP, ...) \
429 UA_MACRO_EXPAND(UA_LOG_WRITERGROUP_INTERNAL(LOGGER, TRACE, WRITERGROUP, __VA_ARGS__, ""))
430#define UA_LOG_DEBUG_WRITERGROUP(LOGGER, WRITERGROUP, ...) \
431 UA_MACRO_EXPAND(UA_LOG_WRITERGROUP_INTERNAL(LOGGER, DEBUG, WRITERGROUP, __VA_ARGS__, ""))
432#define UA_LOG_INFO_WRITERGROUP(LOGGER, WRITERGROUP, ...) \
433 UA_MACRO_EXPAND(UA_LOG_WRITERGROUP_INTERNAL(LOGGER, INFO, WRITERGROUP, __VA_ARGS__, ""))
434#define UA_LOG_WARNING_WRITERGROUP(LOGGER, WRITERGROUP, ...) \
435 UA_MACRO_EXPAND(UA_LOG_WRITERGROUP_INTERNAL(LOGGER, WARNING, WRITERGROUP, __VA_ARGS__, ""))
436#define UA_LOG_ERROR_WRITERGROUP(LOGGER, WRITERGROUP, ...) \
437 UA_MACRO_EXPAND(UA_LOG_WRITERGROUP_INTERNAL(LOGGER, ERROR, WRITERGROUP, __VA_ARGS__, ""))
438#define UA_LOG_FATAL_WRITERGROUP(LOGGER, WRITERGROUP, ...) \
439 UA_MACRO_EXPAND(UA_LOG_WRITERGROUP_INTERNAL(LOGGER, FATAL, WRITERGROUP, __VA_ARGS__, ""))
491#ifdef UA_ENABLE_PUBSUB_MONITORING
533 size_t targetVariablesSize,
542#define UA_LOG_READER_INTERNAL(LOGGER, LEVEL, READER, MSG, ...) \
543 if(UA_LOGLEVEL <= UA_LOGLEVEL_##LEVEL) { \
544 UA_String idStr = UA_STRING_NULL; \
545 UA_String groupIdStr = UA_STRING_NULL; \
547 UA_NodeId_print(&(READER)->identifier, &idStr); \
548 UA_NodeId_print(&(READER)->linkedReaderGroup, &groupIdStr); \
550 UA_LOG_##LEVEL(LOGGER, UA_LOGCATEGORY_PUBSUB, \
551 "ReaderGroup %.*s\t| Reader %.*s\t| " MSG "%.0s", \
552 (int)groupIdStr.length, (char*)groupIdStr.data, \
553 (int)idStr.length, (char*)idStr.data, \
555 UA_String_clear(&idStr); \
556 UA_String_clear(&groupIdStr); \
559#define UA_LOG_TRACE_READER(LOGGER, READER, ...) \
560 UA_MACRO_EXPAND(UA_LOG_READER_INTERNAL(LOGGER, TRACE, READER, __VA_ARGS__, ""))
561#define UA_LOG_DEBUG_READER(LOGGER, READER, ...) \
562 UA_MACRO_EXPAND(UA_LOG_READER_INTERNAL(LOGGER, DEBUG, READER, __VA_ARGS__, ""))
563#define UA_LOG_INFO_READER(LOGGER, READER, ...) \
564 UA_MACRO_EXPAND(UA_LOG_READER_INTERNAL(LOGGER, INFO, READER, __VA_ARGS__, ""))
565#define UA_LOG_WARNING_READER(LOGGER, READER, ...) \
566 UA_MACRO_EXPAND(UA_LOG_READER_INTERNAL(LOGGER, WARNING, READER, __VA_ARGS__, ""))
567#define UA_LOG_ERROR_READER(LOGGER, READER, ...) \
568 UA_MACRO_EXPAND(UA_LOG_READER_INTERNAL(LOGGER, ERROR, READER, __VA_ARGS__, ""))
569#define UA_LOG_FATAL_READER(LOGGER, READER, ...) \
570 UA_MACRO_EXPAND(UA_LOG_READER_INTERNAL(LOGGER, FATAL, READER, __VA_ARGS__, ""))
595#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
598 void *securityPolicyContext;
599#ifdef UA_ENABLE_PUBSUB_SKS
600 UA_PubSubKeyStorage *keyStorage;
658#define UA_LOG_READERGROUP_INTERNAL(LOGGER, LEVEL, RG, MSG, ...) \
659 if(UA_LOGLEVEL <= UA_LOGLEVEL_##LEVEL) { \
660 UA_String idStr = UA_STRING_NULL; \
662 UA_NodeId_print(&(RG)->identifier, &idStr); \
663 UA_LOG_##LEVEL(LOGGER, UA_LOGCATEGORY_PUBSUB, \
664 "ReaderGroup %.*s\t| " MSG "%.0s", (int)idStr.length, \
665 (char*)idStr.data, __VA_ARGS__); \
666 UA_String_clear(&idStr); \
669#define UA_LOG_TRACE_READERGROUP(LOGGER, READERGROUP, ...) \
670 UA_MACRO_EXPAND(UA_LOG_READERGROUP_INTERNAL(LOGGER, TRACE, READERGROUP, __VA_ARGS__, ""))
671#define UA_LOG_DEBUG_READERGROUP(LOGGER, READERGROUP, ...) \
672 UA_MACRO_EXPAND(UA_LOG_READERGROUP_INTERNAL(LOGGER, DEBUG, READERGROUP, __VA_ARGS__, ""))
673#define UA_LOG_INFO_READERGROUP(LOGGER, READERGROUP, ...) \
674 UA_MACRO_EXPAND(UA_LOG_READERGROUP_INTERNAL(LOGGER, INFO, READERGROUP, __VA_ARGS__, ""))
675#define UA_LOG_WARNING_READERGROUP(LOGGER, READERGROUP, ...) \
676 UA_MACRO_EXPAND(UA_LOG_READERGROUP_INTERNAL(LOGGER, WARNING, READERGROUP, __VA_ARGS__, ""))
677#define UA_LOG_ERROR_READERGROUP(LOGGER, READERGROUP, ...) \
678 UA_MACRO_EXPAND(UA_LOG_READERGROUP_INTERNAL(LOGGER, ERROR, READERGROUP, __VA_ARGS__, ""))
679#define UA_LOG_FATAL_READERGROUP(LOGGER, READERGROUP, ...) \
680 UA_MACRO_EXPAND(UA_LOG_READERGROUP_INTERNAL(LOGGER, FATAL, READERGROUP, __VA_ARGS__, ""))
686#ifdef UA_ENABLE_PUBSUB_ENCRYPTION
691 void *channelContext, UA_PubSubSecurityPolicy *securityPolicy);
705#ifdef UA_ENABLE_PUBSUB_SKS
711 UA_SecurityGroupConfig config;
712 UA_PubSubKeyStorage *keyStorage;
715 UA_DateTime baseTime;
716#ifdef UA_ENABLE_PUBSUB_INFORMATIONMODEL
723UA_SecurityGroupConfig_copy(
const UA_SecurityGroupConfig *src,
724 UA_SecurityGroupConfig *
dst);
786#ifdef UA_ENABLE_PUBSUB_SKS
787 LIST_HEAD(, UA_PubSubKeyStorage) pubSubKeyList;
789 size_t securityGroupsSize;
793#ifndef UA_ENABLE_PUBSUB_INFORMATIONMODEL
819#ifndef UA_ENABLE_PUBSUB_INFORMATIONMODEL
824#ifdef UA_ENABLE_PUBSUB_FILE_CONFIG
829UA_PubSubManager_loadPubSubConfigFromByteString(
UA_Server *server,
834UA_PubSubManager_getEncodedPubSubConfiguration(
UA_Server *server,
848#ifdef UA_ENABLE_PUBSUB_MONITORING
851UA_PubSubManager_setDefaultMonitoringCallbacks(UA_PubSubMonitoringInterface *monitoringInterface);
void(* UA_ServerCallback)(UA_Server *server, void *data)
struct UA_Server UA_Server
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
static UA_LogCategory const char * msg
#define TAILQ_HEAD(name, type)
#define LIST_HEAD(name, type)
#define TAILQ_ENTRY(type)
UA_PubSubComponentEnumType
This Source Code Form is subject to the terms of the Mozilla Public License, v.
ConfigurationVersionDataType.
UA_Boolean configurationFrozen
UA_NodeId publishedDataSet
UA_Boolean sampleCallbackIsRegistered
TAILQ_ENTRY(UA_DataSetField) listEntry
UA_DataSetFieldConfig config
UA_UInt64 sampleCallbackId
UA_FieldMetaData fieldMetaData
Parameters for PubSub DataSetReader Configuration.
UA_NodeId linkedReaderGroup
LIST_ENTRY(UA_DataSetReader) listEntry
UA_DateTime lastHeartbeatReceived
UA_DataSetReaderConfig config
UA_Boolean configurationFrozen
UA_NetworkMessageOffsetBuffer bufferedMessage
UA_PubSubComponentEnumType componentType
UA_UInt16 deltaFrameCounter
UA_Boolean configurationFrozen
UA_NodeId connectedDataSet
UA_DataSetWriterSample * lastSamples
UA_ConfigurationVersionDataType connectedDataSetVersion
LIST_ENTRY(UA_DataSetWriter) listEntry
UA_UInt16 actualDataSetMessageSequenceCount
UA_NodeId linkedWriterGroup
UA_DataSetWriterConfig config
UA_PubSubComponentEnumType componentType
Delayed callbacks are executed not when they are registered, but in the following EventLoop cycle.
UA_PubSubConnectionConfig config
UA_ConnectionManager * cm
LIST_HEAD(, UA_ReaderGroup) readerGroups
UA_UInt16 configurationFreezeCounter
LIST_HEAD(, UA_WriterGroup) writerGroups
UA_DateTime silenceErrorUntil
uintptr_t recvChannels[8]
TAILQ_ENTRY(UA_PubSubConnection) listEntry
UA_PubSubComponentEnumType componentType
UA_ReserveIdTree reserveIds
size_t subscribedDataSetsSize
UA_UInt64 defaultPublisherId
TAILQ_HEAD(, UA_PublishedDataSet) publishedDataSets
TAILQ_HEAD(, UA_PubSubConnection) connections
size_t publishedDataSetsSize
TAILQ_HEAD(, UA_TopicAssign) topicAssign
TAILQ_HEAD(, UA_StandaloneSubscribedDataSet) subscribedDataSets
Configuration structure for PublishedDataSet.
UA_UInt16 configurationFreezeCounter
UA_DataSetMetaDataType dataSetMetaData
TAILQ_ENTRY(UA_PublishedDataSet) listEntry
UA_PublishedDataSetConfig config
UA_UInt16 promotedFieldsCount
TAILQ_HEAD(, UA_DataSetField) fields
ReaderGroup configuration.
UA_Boolean configurationFrozen
UA_PubSubComponentEnumType componentType
UA_ReaderGroupConfig config
UA_PubSubConnection * linkedConnection
uintptr_t recvChannels[8]
LIST_HEAD(, UA_DataSetReader) readers
LIST_ENTRY(UA_ReaderGroup) listEntry
UA_ReserveIdType reserveIdType
UA_String transportProfileUri
ZIP_ENTRY(UA_ReserveId) treeEntry
TAILQ_ENTRY(UA_StandaloneSubscribedDataSet) listEntry
UA_StandaloneSubscribedDataSetConfig config
UA_NodeId connectedReader
TAILQ_ENTRY(UA_TopicAssign) listEntry
UA_ReaderGroup * rgIdentifier
UA_WriterGroupConfig config
UA_NetworkMessageOffsetBuffer bufferedMessage
UA_Boolean configurationFrozen
UA_UInt64 publishCallbackId
UA_PubSubConnection * linkedConnection
UA_DateTime lastPublishTimeStamp
LIST_HEAD(, UA_DataSetWriter) writers
LIST_ENTRY(UA_WriterGroup) listEntry
UA_PubSubComponentEnumType componentType
_UA_BEGIN_DECLS typedef bool UA_Boolean
This Source Code Form is subject to the terms of the Mozilla Public License, v.
UA_PubSubState
PubSubState.
UA_StatusCode UA_DataSetWriter_create(UA_Server *server, const UA_NodeId writerGroup, const UA_NodeId dataSet, const UA_DataSetWriterConfig *dataSetWriterConfig, UA_NodeId *writerIdentifier)
UA_StatusCode UA_FieldTargetVariable_copy(const UA_FieldTargetVariable *src, UA_FieldTargetVariable *dst)
Copy the configuration of Field Target Variables.
void UA_PubSubConnectionConfig_clear(UA_PubSubConnectionConfig *connectionConfig)
UA_StatusCode UA_WriterGroup_unfreezeConfiguration(UA_Server *server, UA_WriterGroup *wg)
UA_StatusCode UA_ReaderGroup_create(UA_Server *server, UA_NodeId connectionId, const UA_ReaderGroupConfig *rgc, UA_NodeId *readerGroupId)
UA_StatusCode UA_WriterGroup_remove(UA_Server *server, UA_WriterGroup *wg)
UA_StatusCode UA_PubSubManager_addPubSubTopicAssign(UA_Server *server, UA_ReaderGroup *readerGroup, UA_String topic)
UA_UInt32 UA_PubSubConfigurationVersionTimeDifference(void)
UA_StatusCode UA_PublishedDataSetConfig_copy(const UA_PublishedDataSetConfig *src, UA_PublishedDataSetConfig *dst)
UA_PubSubConnection * UA_PubSubConnection_findConnectionbyId(UA_Server *server, UA_NodeId connectionIdentifier)
UA_StandaloneSubscribedDataSet * UA_StandaloneSubscribedDataSet_findSDSbyId(UA_Server *server, UA_NodeId identifier)
#define UA_PUBSUB_MAXCHANNELS
Max number of underlying for sending and receiving.
void UA_PubSubManager_init(UA_Server *server, UA_PubSubManager *pubSubManager)
UA_StatusCode UA_WriterGroup_setPubSubState(UA_Server *server, UA_WriterGroup *writerGroup, UA_PubSubState state, UA_StatusCode cause)
UA_StatusCode UA_WriterGroupConfig_copy(const UA_WriterGroupConfig *src, UA_WriterGroupConfig *dst)
struct UA_SecurityGroup UA_SecurityGroup
void UA_PublishedDataSet_clear(UA_Server *server, UA_PublishedDataSet *publishedDataSet)
UA_Boolean UA_ReaderGroup_decodeAndProcessRT(UA_Server *server, UA_ReaderGroup *readerGroup, UA_ByteString *buf)
UA_PublishedDataSet * UA_PublishedDataSet_findPDSbyId(UA_Server *server, UA_NodeId identifier)
UA_ReaderGroup * UA_ReaderGroup_findRGbyId(UA_Server *server, UA_NodeId identifier)
Prototypes for internal util functions - some functions maybe removed later (currently moved from pub...
void UA_PubSubManager_generateUniqueNodeId(UA_PubSubManager *psm, UA_NodeId *nodeId)
UA_StatusCode UA_WriterGroup_create(UA_Server *server, const UA_NodeId connection, const UA_WriterGroupConfig *writerGroupConfig, UA_NodeId *writerGroupIdentifier)
UA_DataSetFieldResult UA_DataSetField_create(UA_Server *server, const UA_NodeId publishedDataSet, const UA_DataSetFieldConfig *fieldConfig, UA_NodeId *fieldIdentifier)
UA_StatusCode UA_DataSetWriter_prepareDataSet(UA_Server *server, UA_DataSetWriter *dsw, UA_DataSetMessage *dsm)
UA_StatusCode UA_PubSubConnection_connect(UA_Server *server, UA_PubSubConnection *c, UA_Boolean validate)
void UA_WriterGroup_disconnect(UA_WriterGroup *wg)
void UA_PubSubConnection_disconnect(UA_PubSubConnection *c)
UA_EventLoop * UA_PubSubConnection_getEL(UA_Server *server, UA_PubSubConnection *c)
Returns either the eventloop configured in the connection or, in its absence, for the server.
UA_StatusCode UA_ReaderGroup_freezeConfiguration(UA_Server *server, UA_ReaderGroup *rg)
void UA_DataSetWriter_freezeConfiguration(UA_Server *server, UA_DataSetWriter *dsw)
UA_StatusCode UA_ReaderGroup_remove(UA_Server *server, UA_ReaderGroup *rg)
UA_Boolean UA_ReaderGroup_process(UA_Server *server, UA_ReaderGroup *readerGroup, UA_NetworkMessage *nm)
UA_StatusCode getPublishedDataSetConfig(UA_Server *server, const UA_NodeId pds, UA_PublishedDataSetConfig *config)
UA_Guid UA_PubSubManager_generateUniqueGuid(UA_Server *server)
void UA_PubSubManager_shutdown(UA_Server *server, UA_PubSubManager *pubSubManager)
UA_StatusCode UA_ReaderGroup_connect(UA_Server *server, UA_ReaderGroup *rg, UA_Boolean validate)
UA_StatusCode UA_PubSubManager_reserveIds(UA_Server *server, UA_NodeId sessionId, UA_UInt16 numRegWriterGroupIds, UA_UInt16 numRegDataSetWriterIds, UA_String transportProfileUri, UA_UInt16 **writerGroupIds, UA_UInt16 **dataSetWriterIds)
void UA_StandaloneSubscribedDataSet_clear(UA_Server *server, UA_StandaloneSubscribedDataSet *subscribedDataSet)
UA_StatusCode UA_WriterGroup_updateConfig(UA_Server *server, UA_WriterGroup *wg, const UA_WriterGroupConfig *config)
UA_PublishedDataSet * UA_PublishedDataSet_findPDSbyName(UA_Server *server, UA_String name)
UA_StatusCode UA_DataSetFieldConfig_copy(const UA_DataSetFieldConfig *src, UA_DataSetFieldConfig *dst)
UA_StatusCode decodeNetworkMessage(UA_Server *server, UA_ByteString *buffer, size_t *pos, UA_NetworkMessage *nm, UA_PubSubConnection *connection)
Reading Message handling
void UA_PubSubDataSetField_sampleValue(UA_Server *server, UA_DataSetField *field, UA_DataValue *value)
UA_StatusCode UA_WriterGroup_addPublishCallback(UA_Server *server, UA_WriterGroup *writerGroup)
UA_StandaloneSubscribedDataSet * UA_StandaloneSubscribedDataSet_findSDSbyName(UA_Server *server, UA_String identifier)
void UA_TargetVariables_clear(UA_TargetVariables *subscribedDataSetTarget)
Clear the Target Variables configuration.
void UA_PubSubConnection_delete(UA_Server *server, UA_PubSubConnection *c)
UA_StatusCode UA_DataSetWriter_generateDataSetMessage(UA_Server *server, UA_DataSetMessage *dataSetMessage, UA_DataSetWriter *dataSetWriter)
UA_StatusCode UA_PubSubConnection_create(UA_Server *server, const UA_PubSubConnectionConfig *connectionConfig, UA_NodeId *connectionIdentifier)
UA_StatusCode UA_TargetVariables_copy(const UA_TargetVariables *src, UA_TargetVariables *dst)
Copy the configuration of Target Variables.
UA_StatusCode UA_WriterGroup_connect(UA_Server *server, UA_WriterGroup *wg, UA_Boolean validate)
UA_StatusCode UA_PubSubConnection_setPubSubState(UA_Server *server, UA_PubSubConnection *connection, UA_PubSubState state, UA_StatusCode cause)
UA_DataSetField * UA_DataSetField_findDSFbyId(UA_Server *server, UA_NodeId identifier)
UA_StatusCode UA_ReaderGroup_unfreezeConfiguration(UA_Server *server, UA_ReaderGroup *rg)
UA_StatusCode UA_StandaloneSubscribedDataSetConfig_copy(const UA_StandaloneSubscribedDataSetConfig *src, UA_StandaloneSubscribedDataSetConfig *dst)
void UA_PubSubManager_freeIds(UA_Server *server)
void UA_DataSetWriter_unfreezeConfiguration(UA_Server *server, UA_DataSetWriter *dsw)
UA_StatusCode UA_DataSetWriter_setPubSubState(UA_Server *server, UA_DataSetWriter *dataSetWriter, UA_PubSubState state, UA_StatusCode cause)
void UA_DataSetReader_process(UA_Server *server, UA_ReaderGroup *readerGroup, UA_DataSetReader *dataSetReader, UA_DataSetMessage *dataSetMsg)
Process Network Message using DataSetReader.
UA_StatusCode UA_ReaderGroupConfig_copy(const UA_ReaderGroupConfig *src, UA_ReaderGroupConfig *dst)
void UA_PubSubManager_delete(UA_Server *server, UA_PubSubManager *pubSubManager)
UA_DataSetWriter * UA_DataSetWriter_findDSWbyId(UA_Server *server, UA_NodeId identifier)
void UA_WriterGroup_publishCallback(UA_Server *server, UA_WriterGroup *writerGroup)
UA_StatusCode UA_PublishedDataSet_remove(UA_Server *server, UA_PublishedDataSet *publishedDataSet)
UA_StatusCode UA_DataSetReader_create(UA_Server *server, UA_NodeId readerGroupIdentifier, const UA_DataSetReaderConfig *dataSetReaderConfig, UA_NodeId *readerIdentifier)
void UA_ReaderGroup_disconnect(UA_ReaderGroup *rg)
UA_StatusCode UA_DataSetReader_setPubSubState(UA_Server *server, UA_DataSetReader *dataSetReader, UA_PubSubState state, UA_StatusCode cause)
UA_StatusCode DataSetReader_createTargetVariables(UA_Server *server, UA_DataSetReader *dsr, size_t targetVariablesSize, const UA_FieldTargetVariable *targetVariables)
UA_WriterGroup * UA_WriterGroup_findWGbyId(UA_Server *server, UA_NodeId identifier)
UA_StatusCode UA_DataSetReader_checkIdentifier(UA_Server *server, UA_NetworkMessage *msg, UA_DataSetReader *reader, UA_ReaderGroupConfig readerGroupConfig)
UA_StatusCode UA_DataSetWriterConfig_copy(const UA_DataSetWriterConfig *src, UA_DataSetWriterConfig *dst)
UA_DataSetFieldResult UA_DataSetField_remove(UA_Server *server, UA_DataSetField *currentField)
UA_StatusCode UA_ReaderGroup_setPubSubState(UA_Server *server, UA_ReaderGroup *readerGroup, UA_PubSubState state, UA_StatusCode cause)
UA_StatusCode UA_WriterGroup_freezeConfiguration(UA_Server *server, UA_WriterGroup *wg)
UA_DataSetReader * UA_ReaderGroup_findDSRbyId(UA_Server *server, UA_NodeId identifier)
UA_StatusCode setReaderGroupEncryptionKeys(UA_Server *server, const UA_NodeId readerGroup, UA_UInt32 securityTokenId, const UA_ByteString signingKey, const UA_ByteString encryptingKey, const UA_ByteString keyNonce)
UA_StatusCode UA_PubSubConnectionConfig_copy(const UA_PubSubConnectionConfig *src, UA_PubSubConnectionConfig *dst)
UA_StatusCode UA_DataSetReader_remove(UA_Server *server, UA_DataSetReader *dsr)
UA_AddPublishedDataSetResult UA_PublishedDataSet_create(UA_Server *server, const UA_PublishedDataSetConfig *publishedDataSetConfig, UA_NodeId *pdsIdentifier)
UA_StatusCode setWriterGroupEncryptionKeys(UA_Server *server, const UA_NodeId writerGroup, UA_UInt32 securityTokenId, const UA_ByteString signingKey, const UA_ByteString encryptingKey, const UA_ByteString keyNonce)
UA_StatusCode UA_DataSetWriter_remove(UA_Server *server, UA_DataSetWriter *dataSetWriter)
#define ZIP_HEAD(name, type)
Reusable zip tree implementation.