|
@@ -42,14 +42,9 @@ struct UA_Client;
|
|
* Server Lifecycle
|
|
* Server Lifecycle
|
|
* ---------------- */
|
|
* ---------------- */
|
|
|
|
|
|
-/* The method UA_Server_new is defined in server_config_default.h. So default
|
|
|
|
- * plugins outside of the core library (for logging, etc) are already available
|
|
|
|
- * during the initialization.
|
|
|
|
- *
|
|
|
|
- * UA_Server UA_EXPORT * UA_Server_new(void);
|
|
|
|
- */
|
|
|
|
|
|
+UA_Server UA_EXPORT * UA_Server_new(void);
|
|
|
|
|
|
-/* Creates a new server. Moves the config into the server with a shallow copy.
|
|
|
|
|
|
+/* Makes a (shallow) copy of the config into the server object.
|
|
* The config content is cleared together with the server. */
|
|
* The config content is cleared together with the server. */
|
|
UA_Server UA_EXPORT *
|
|
UA_Server UA_EXPORT *
|
|
UA_Server_newWithConfig(const UA_ServerConfig *config);
|
|
UA_Server_newWithConfig(const UA_ServerConfig *config);
|
|
@@ -108,7 +103,7 @@ typedef void (*UA_ServerCallback)(UA_Server *server, void *data);
|
|
* identifier is not set.
|
|
* identifier is not set.
|
|
* @return Upon success, UA_STATUSCODE_GOOD is returned. An error code
|
|
* @return Upon success, UA_STATUSCODE_GOOD is returned. An error code
|
|
* otherwise. */
|
|
* otherwise. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addTimedCallback(UA_Server *server, UA_ServerCallback callback,
|
|
UA_Server_addTimedCallback(UA_Server *server, UA_ServerCallback callback,
|
|
void *data, UA_DateTime date, UA_UInt64 *callbackId);
|
|
void *data, UA_DateTime date, UA_UInt64 *callbackId);
|
|
|
|
|
|
@@ -125,11 +120,11 @@ UA_Server_addTimedCallback(UA_Server *server, UA_ServerCallback callback,
|
|
* identifier is not set.
|
|
* identifier is not set.
|
|
* @return Upon success, UA_STATUSCODE_GOOD is returned. An error code
|
|
* @return Upon success, UA_STATUSCODE_GOOD is returned. An error code
|
|
* otherwise. */
|
|
* otherwise. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addRepeatedCallback(UA_Server *server, UA_ServerCallback callback,
|
|
UA_Server_addRepeatedCallback(UA_Server *server, UA_ServerCallback callback,
|
|
void *data, UA_Double interval_ms, UA_UInt64 *callbackId);
|
|
void *data, UA_Double interval_ms, UA_UInt64 *callbackId);
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_changeRepeatedCallbackInterval(UA_Server *server, UA_UInt64 callbackId,
|
|
UA_Server_changeRepeatedCallbackInterval(UA_Server *server, UA_UInt64 callbackId,
|
|
UA_Double interval_ms);
|
|
UA_Double interval_ms);
|
|
|
|
|
|
@@ -137,7 +132,7 @@ UA_Server_changeRepeatedCallbackInterval(UA_Server *server, UA_UInt64 callbackId
|
|
*
|
|
*
|
|
* @param server The server object.
|
|
* @param server The server object.
|
|
* @param callbackId The id of the callback */
|
|
* @param callbackId The id of the callback */
|
|
-void UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+void UA_EXPORT
|
|
UA_Server_removeCallback(UA_Server *server, UA_UInt64 callbackId);
|
|
UA_Server_removeCallback(UA_Server *server, UA_UInt64 callbackId);
|
|
|
|
|
|
#define UA_Server_removeRepeatedCallback(server, callbackId) \
|
|
#define UA_Server_removeRepeatedCallback(server, callbackId) \
|
|
@@ -166,106 +161,106 @@ UA_Server_removeCallback(UA_Server *server, UA_UInt64 callbackId);
|
|
* @param timestamps Which timestamps to return for the attribute.
|
|
* @param timestamps Which timestamps to return for the attribute.
|
|
* @return Returns a DataValue that contains either an error code, or a variant
|
|
* @return Returns a DataValue that contains either an error code, or a variant
|
|
* with the attribute value and the timestamps. */
|
|
* with the attribute value and the timestamps. */
|
|
-UA_DataValue UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_DataValue UA_EXPORT
|
|
UA_Server_read(UA_Server *server, const UA_ReadValueId *item,
|
|
UA_Server_read(UA_Server *server, const UA_ReadValueId *item,
|
|
UA_TimestampsToReturn timestamps);
|
|
UA_TimestampsToReturn timestamps);
|
|
|
|
|
|
/* Don't use this function. There are typed versions for every supported
|
|
/* Don't use this function. There are typed versions for every supported
|
|
* attribute. */
|
|
* attribute. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
__UA_Server_read(UA_Server *server, const UA_NodeId *nodeId,
|
|
__UA_Server_read(UA_Server *server, const UA_NodeId *nodeId,
|
|
UA_AttributeId attributeId, void *v);
|
|
UA_AttributeId attributeId, void *v);
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readNodeId(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readNodeId(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_NodeId *outNodeId) {
|
|
UA_NodeId *outNodeId) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_NODEID, outNodeId);
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_NODEID, outNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readNodeClass(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readNodeClass(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_NodeClass *outNodeClass) {
|
|
UA_NodeClass *outNodeClass) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_NODECLASS,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_NODECLASS,
|
|
outNodeClass);
|
|
outNodeClass);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readBrowseName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readBrowseName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_QualifiedName *outBrowseName) {
|
|
UA_QualifiedName *outBrowseName) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_BROWSENAME,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_BROWSENAME,
|
|
outBrowseName);
|
|
outBrowseName);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readDisplayName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readDisplayName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_LocalizedText *outDisplayName) {
|
|
UA_LocalizedText *outDisplayName) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME,
|
|
outDisplayName);
|
|
outDisplayName);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readDescription(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readDescription(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_LocalizedText *outDescription) {
|
|
UA_LocalizedText *outDescription) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DESCRIPTION,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DESCRIPTION,
|
|
outDescription);
|
|
outDescription);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readWriteMask(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readWriteMask(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_UInt32 *outWriteMask) {
|
|
UA_UInt32 *outWriteMask) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_WRITEMASK,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_WRITEMASK,
|
|
outWriteMask);
|
|
outWriteMask);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readIsAbstract(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readIsAbstract(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Boolean *outIsAbstract) {
|
|
UA_Boolean *outIsAbstract) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ISABSTRACT,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ISABSTRACT,
|
|
outIsAbstract);
|
|
outIsAbstract);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readSymmetric(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readSymmetric(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Boolean *outSymmetric) {
|
|
UA_Boolean *outSymmetric) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_SYMMETRIC,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_SYMMETRIC,
|
|
outSymmetric);
|
|
outSymmetric);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readInverseName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readInverseName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_LocalizedText *outInverseName) {
|
|
UA_LocalizedText *outInverseName) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_INVERSENAME,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_INVERSENAME,
|
|
outInverseName);
|
|
outInverseName);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readContainsNoLoop(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readContainsNoLoop(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Boolean *outContainsNoLoops) {
|
|
UA_Boolean *outContainsNoLoops) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_CONTAINSNOLOOPS,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_CONTAINSNOLOOPS,
|
|
outContainsNoLoops);
|
|
outContainsNoLoops);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readEventNotifier(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readEventNotifier(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Byte *outEventNotifier) {
|
|
UA_Byte *outEventNotifier) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER,
|
|
outEventNotifier);
|
|
outEventNotifier);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readValue(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readValue(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Variant *outValue) {
|
|
UA_Variant *outValue) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_VALUE, outValue);
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_VALUE, outValue);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readDataType(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readDataType(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_NodeId *outDataType) {
|
|
UA_NodeId *outDataType) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DATATYPE,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DATATYPE,
|
|
outDataType);
|
|
outDataType);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readValueRank(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readValueRank(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Int32 *outValueRank) {
|
|
UA_Int32 *outValueRank) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_VALUERANK,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_VALUERANK,
|
|
@@ -273,21 +268,21 @@ UA_Server_readValueRank(UA_Server *server, const UA_NodeId nodeId,
|
|
}
|
|
}
|
|
|
|
|
|
/* Returns a variant with an int32 array */
|
|
/* Returns a variant with an int32 array */
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readArrayDimensions(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readArrayDimensions(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Variant *outArrayDimensions) {
|
|
UA_Variant *outArrayDimensions) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ARRAYDIMENSIONS,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ARRAYDIMENSIONS,
|
|
outArrayDimensions);
|
|
outArrayDimensions);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readAccessLevel(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readAccessLevel(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Byte *outAccessLevel) {
|
|
UA_Byte *outAccessLevel) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL,
|
|
outAccessLevel);
|
|
outAccessLevel);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Double *outMinimumSamplingInterval) {
|
|
UA_Double *outMinimumSamplingInterval) {
|
|
return __UA_Server_read(server, &nodeId,
|
|
return __UA_Server_read(server, &nodeId,
|
|
@@ -295,14 +290,14 @@ UA_Server_readMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId,
|
|
outMinimumSamplingInterval);
|
|
outMinimumSamplingInterval);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readHistorizing(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readHistorizing(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Boolean *outHistorizing) {
|
|
UA_Boolean *outHistorizing) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_HISTORIZING,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_HISTORIZING,
|
|
outHistorizing);
|
|
outHistorizing);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_readExecutable(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_readExecutable(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Boolean *outExecutable) {
|
|
UA_Boolean *outExecutable) {
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_EXECUTABLE,
|
|
return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_EXECUTABLE,
|
|
@@ -335,101 +330,101 @@ UA_Server_readExecutable(UA_Server *server, const UA_NodeId nodeId,
|
|
* See the section on NumericRange for the format used for array
|
|
* See the section on NumericRange for the format used for array
|
|
* ranges.
|
|
* ranges.
|
|
* @return Returns a status code. */
|
|
* @return Returns a status code. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_write(UA_Server *server, const UA_WriteValue *value);
|
|
UA_Server_write(UA_Server *server, const UA_WriteValue *value);
|
|
|
|
|
|
/* Don't use this function. There are typed versions with no additional
|
|
/* Don't use this function. There are typed versions with no additional
|
|
* overhead. */
|
|
* overhead. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
__UA_Server_write(UA_Server *server, const UA_NodeId *nodeId,
|
|
__UA_Server_write(UA_Server *server, const UA_NodeId *nodeId,
|
|
const UA_AttributeId attributeId,
|
|
const UA_AttributeId attributeId,
|
|
const UA_DataType *attr_type, const void *attr);
|
|
const UA_DataType *attr_type, const void *attr);
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeBrowseName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeBrowseName(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_QualifiedName browseName) {
|
|
const UA_QualifiedName browseName) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_BROWSENAME,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_BROWSENAME,
|
|
&UA_TYPES[UA_TYPES_QUALIFIEDNAME], &browseName);
|
|
&UA_TYPES[UA_TYPES_QUALIFIEDNAME], &browseName);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeDisplayName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeDisplayName(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_LocalizedText displayName) {
|
|
const UA_LocalizedText displayName) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME,
|
|
&UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &displayName);
|
|
&UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &displayName);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeDescription(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeDescription(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_LocalizedText description) {
|
|
const UA_LocalizedText description) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DESCRIPTION,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DESCRIPTION,
|
|
&UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &description);
|
|
&UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &description);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeWriteMask(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeWriteMask(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_UInt32 writeMask) {
|
|
const UA_UInt32 writeMask) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_WRITEMASK,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_WRITEMASK,
|
|
&UA_TYPES[UA_TYPES_UINT32], &writeMask);
|
|
&UA_TYPES[UA_TYPES_UINT32], &writeMask);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeIsAbstract(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeIsAbstract(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Boolean isAbstract) {
|
|
const UA_Boolean isAbstract) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ISABSTRACT,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ISABSTRACT,
|
|
&UA_TYPES[UA_TYPES_BOOLEAN], &isAbstract);
|
|
&UA_TYPES[UA_TYPES_BOOLEAN], &isAbstract);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeInverseName(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeInverseName(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_LocalizedText inverseName) {
|
|
const UA_LocalizedText inverseName) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_INVERSENAME,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_INVERSENAME,
|
|
&UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &inverseName);
|
|
&UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &inverseName);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeEventNotifier(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeEventNotifier(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Byte eventNotifier) {
|
|
const UA_Byte eventNotifier) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER,
|
|
&UA_TYPES[UA_TYPES_BYTE], &eventNotifier);
|
|
&UA_TYPES[UA_TYPES_BYTE], &eventNotifier);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeValue(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeValue(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Variant value) {
|
|
const UA_Variant value) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_VALUE,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_VALUE,
|
|
&UA_TYPES[UA_TYPES_VARIANT], &value);
|
|
&UA_TYPES[UA_TYPES_VARIANT], &value);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeDataType(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeDataType(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_NodeId dataType) {
|
|
const UA_NodeId dataType) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DATATYPE,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DATATYPE,
|
|
&UA_TYPES[UA_TYPES_NODEID], &dataType);
|
|
&UA_TYPES[UA_TYPES_NODEID], &dataType);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeValueRank(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeValueRank(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Int32 valueRank) {
|
|
const UA_Int32 valueRank) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_VALUERANK,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_VALUERANK,
|
|
&UA_TYPES[UA_TYPES_INT32], &valueRank);
|
|
&UA_TYPES[UA_TYPES_INT32], &valueRank);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeArrayDimensions(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeArrayDimensions(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Variant arrayDimensions) {
|
|
const UA_Variant arrayDimensions) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ARRAYDIMENSIONS,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ARRAYDIMENSIONS,
|
|
&UA_TYPES[UA_TYPES_VARIANT], &arrayDimensions);
|
|
&UA_TYPES[UA_TYPES_VARIANT], &arrayDimensions);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeAccessLevel(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeAccessLevel(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Byte accessLevel) {
|
|
const UA_Byte accessLevel) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL,
|
|
&UA_TYPES[UA_TYPES_BYTE], &accessLevel);
|
|
&UA_TYPES[UA_TYPES_BYTE], &accessLevel);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Double miniumSamplingInterval) {
|
|
const UA_Double miniumSamplingInterval) {
|
|
return __UA_Server_write(server, &nodeId,
|
|
return __UA_Server_write(server, &nodeId,
|
|
@@ -438,7 +433,7 @@ UA_Server_writeMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId
|
|
&miniumSamplingInterval);
|
|
&miniumSamplingInterval);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeHistorizing(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeHistorizing(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Boolean historizing) {
|
|
const UA_Boolean historizing) {
|
|
return __UA_Server_write(server, &nodeId,
|
|
return __UA_Server_write(server, &nodeId,
|
|
@@ -447,7 +442,7 @@ UA_Server_writeHistorizing(UA_Server *server, const UA_NodeId nodeId,
|
|
&historizing);
|
|
&historizing);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_writeExecutable(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_writeExecutable(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_Boolean executable) {
|
|
const UA_Boolean executable) {
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_EXECUTABLE,
|
|
return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_EXECUTABLE,
|
|
@@ -459,22 +454,22 @@ UA_Server_writeExecutable(UA_Server *server, const UA_NodeId nodeId,
|
|
|
|
|
|
/* Browse the references of a particular node. See the definition of
|
|
/* Browse the references of a particular node. See the definition of
|
|
* BrowseDescription structure for details. */
|
|
* BrowseDescription structure for details. */
|
|
-UA_BrowseResult UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_BrowseResult UA_EXPORT
|
|
UA_Server_browse(UA_Server *server, UA_UInt32 maxReferences,
|
|
UA_Server_browse(UA_Server *server, UA_UInt32 maxReferences,
|
|
const UA_BrowseDescription *bd);
|
|
const UA_BrowseDescription *bd);
|
|
|
|
|
|
-UA_BrowseResult UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_BrowseResult UA_EXPORT
|
|
UA_Server_browseNext(UA_Server *server, UA_Boolean releaseContinuationPoint,
|
|
UA_Server_browseNext(UA_Server *server, UA_Boolean releaseContinuationPoint,
|
|
const UA_ByteString *continuationPoint);
|
|
const UA_ByteString *continuationPoint);
|
|
|
|
|
|
/* Nonstandard version of the browse service that recurses into child nodes.
|
|
/* Nonstandard version of the browse service that recurses into child nodes.
|
|
* Possible loops (that can occur for non-hierarchical references) are handled
|
|
* Possible loops (that can occur for non-hierarchical references) are handled
|
|
* by adding every target node at most once to the results array. */
|
|
* by adding every target node at most once to the results array. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_browseRecursive(UA_Server *server, const UA_BrowseDescription *bd,
|
|
UA_Server_browseRecursive(UA_Server *server, const UA_BrowseDescription *bd,
|
|
size_t *resultsSize, UA_ExpandedNodeId **results);
|
|
size_t *resultsSize, UA_ExpandedNodeId **results);
|
|
|
|
|
|
-UA_BrowsePathResult UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_BrowsePathResult UA_EXPORT
|
|
UA_Server_translateBrowsePathToNodeIds(UA_Server *server,
|
|
UA_Server_translateBrowsePathToNodeIds(UA_Server *server,
|
|
const UA_BrowsePath *browsePath);
|
|
const UA_BrowsePath *browsePath);
|
|
|
|
|
|
@@ -486,7 +481,7 @@ UA_Server_translateBrowsePathToNodeIds(UA_Server *server,
|
|
* RelativePath that specifies forward references which are subtypes of the
|
|
* RelativePath that specifies forward references which are subtypes of the
|
|
* HierarchicalReferences ReferenceType. All Nodes followed by the browsePath
|
|
* HierarchicalReferences ReferenceType. All Nodes followed by the browsePath
|
|
* shall be of the NodeClass Object or Variable. */
|
|
* shall be of the NodeClass Object or Variable. */
|
|
-UA_BrowsePathResult UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_BrowsePathResult UA_EXPORT
|
|
UA_Server_browseSimplifiedBrowsePath(UA_Server *server, const UA_NodeId origin,
|
|
UA_Server_browseSimplifiedBrowsePath(UA_Server *server, const UA_NodeId origin,
|
|
size_t browsePathSize,
|
|
size_t browsePathSize,
|
|
const UA_QualifiedName *browsePath);
|
|
const UA_QualifiedName *browsePath);
|
|
@@ -501,7 +496,7 @@ typedef UA_StatusCode
|
|
UA_NodeId referenceTypeId, void *handle);
|
|
UA_NodeId referenceTypeId, void *handle);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_forEachChildNodeCall(UA_Server *server, UA_NodeId parentNodeId,
|
|
UA_Server_forEachChildNodeCall(UA_Server *server, UA_NodeId parentNodeId,
|
|
UA_NodeIteratorCallback callback, void *handle);
|
|
UA_NodeIteratorCallback callback, void *handle);
|
|
|
|
|
|
@@ -522,7 +517,7 @@ UA_Server_forEachChildNodeCall(UA_Server *server, UA_NodeId parentNodeId,
|
|
* @param client the client which is used to call the RegisterServer. It must
|
|
* @param client the client which is used to call the RegisterServer. It must
|
|
* already be connected to the correct endpoint
|
|
* already be connected to the correct endpoint
|
|
* @param semaphoreFilePath optional parameter pointing to semaphore file. */
|
|
* @param semaphoreFilePath optional parameter pointing to semaphore file. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_register_discovery(UA_Server *server, struct UA_Client *client,
|
|
UA_Server_register_discovery(UA_Server *server, struct UA_Client *client,
|
|
const char* semaphoreFilePath);
|
|
const char* semaphoreFilePath);
|
|
|
|
|
|
@@ -531,7 +526,7 @@ UA_Server_register_discovery(UA_Server *server, struct UA_Client *client,
|
|
* @param server
|
|
* @param server
|
|
* @param client the client which is used to call the RegisterServer. It must
|
|
* @param client the client which is used to call the RegisterServer. It must
|
|
* already be connected to the correct endpoint */
|
|
* already be connected to the correct endpoint */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_unregister_discovery(UA_Server *server, struct UA_Client *client);
|
|
UA_Server_unregister_discovery(UA_Server *server, struct UA_Client *client);
|
|
|
|
|
|
/* Adds a periodic callback to register the server with the LDS (local discovery server)
|
|
/* Adds a periodic callback to register the server with the LDS (local discovery server)
|
|
@@ -557,7 +552,7 @@ UA_Server_unregister_discovery(UA_Server *server, struct UA_Client *client);
|
|
* @param intervalMs
|
|
* @param intervalMs
|
|
* @param delayFirstRegisterMs
|
|
* @param delayFirstRegisterMs
|
|
* @param periodicCallbackId */
|
|
* @param periodicCallbackId */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addPeriodicServerRegisterCallback(UA_Server *server, struct UA_Client *client,
|
|
UA_Server_addPeriodicServerRegisterCallback(UA_Server *server, struct UA_Client *client,
|
|
const char* discoveryServerUrl,
|
|
const char* discoveryServerUrl,
|
|
UA_Double intervalMs,
|
|
UA_Double intervalMs,
|
|
@@ -577,7 +572,7 @@ typedef void (*UA_Server_registerServerCallback)(const UA_RegisteredServer *regi
|
|
* @param cb the callback
|
|
* @param cb the callback
|
|
* @param data data passed to the callback
|
|
* @param data data passed to the callback
|
|
* @return UA_STATUSCODE_SUCCESS on success */
|
|
* @return UA_STATUSCODE_SUCCESS on success */
|
|
-void UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+void UA_EXPORT
|
|
UA_Server_setRegisterServerCallback(UA_Server *server, UA_Server_registerServerCallback cb,
|
|
UA_Server_setRegisterServerCallback(UA_Server *server, UA_Server_registerServerCallback cb,
|
|
void* data);
|
|
void* data);
|
|
|
|
|
|
@@ -605,7 +600,7 @@ typedef void (*UA_Server_serverOnNetworkCallback)(const UA_ServerOnNetwork *serv
|
|
* @param cb the callback
|
|
* @param cb the callback
|
|
* @param data data passed to the callback
|
|
* @param data data passed to the callback
|
|
* @return UA_STATUSCODE_SUCCESS on success */
|
|
* @return UA_STATUSCODE_SUCCESS on success */
|
|
-void UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+void UA_EXPORT
|
|
UA_Server_setServerOnNetworkCallback(UA_Server *server,
|
|
UA_Server_setServerOnNetworkCallback(UA_Server *server,
|
|
UA_Server_serverOnNetworkCallback cb,
|
|
UA_Server_serverOnNetworkCallback cb,
|
|
void* data);
|
|
void* data);
|
|
@@ -734,16 +729,16 @@ typedef struct {
|
|
const UA_NodeId *nodeId, void **nodeContext);
|
|
const UA_NodeId *nodeId, void **nodeContext);
|
|
} UA_NodeTypeLifecycle;
|
|
} UA_NodeTypeLifecycle;
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_setNodeTypeLifecycle(UA_Server *server, UA_NodeId nodeId,
|
|
UA_Server_setNodeTypeLifecycle(UA_Server *server, UA_NodeId nodeId,
|
|
UA_NodeTypeLifecycle lifecycle);
|
|
UA_NodeTypeLifecycle lifecycle);
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_getNodeContext(UA_Server *server, UA_NodeId nodeId,
|
|
UA_Server_getNodeContext(UA_Server *server, UA_NodeId nodeId,
|
|
void **nodeContext);
|
|
void **nodeContext);
|
|
|
|
|
|
/* Careful! The user has to ensure that the destructor callbacks still work. */
|
|
/* Careful! The user has to ensure that the destructor callbacks still work. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_setNodeContext(UA_Server *server, UA_NodeId nodeId,
|
|
UA_Server_setNodeContext(UA_Server *server, UA_NodeId nodeId,
|
|
void *nodeContext);
|
|
void *nodeContext);
|
|
|
|
|
|
@@ -826,7 +821,7 @@ typedef struct {
|
|
const UA_DataValue *value);
|
|
const UA_DataValue *value);
|
|
} UA_DataSource;
|
|
} UA_DataSource;
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_setVariableNode_dataSource(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_setVariableNode_dataSource(UA_Server *server, const UA_NodeId nodeId,
|
|
const UA_DataSource dataSource);
|
|
const UA_DataSource dataSource);
|
|
|
|
|
|
@@ -873,7 +868,7 @@ typedef struct {
|
|
const UA_DataValue *data);
|
|
const UA_DataValue *data);
|
|
} UA_ValueCallback;
|
|
} UA_ValueCallback;
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_setVariableNode_valueCallback(UA_Server *server,
|
|
UA_Server_setVariableNode_valueCallback(UA_Server *server,
|
|
const UA_NodeId nodeId,
|
|
const UA_NodeId nodeId,
|
|
const UA_ValueCallback callback);
|
|
const UA_ValueCallback callback);
|
|
@@ -915,7 +910,7 @@ typedef void (*UA_Server_EventNotificationCallback)
|
|
* @return Returns a description of the created MonitoredItem. The structure
|
|
* @return Returns a description of the created MonitoredItem. The structure
|
|
* also contains a StatusCode (in case of an error) and the identifier of the
|
|
* also contains a StatusCode (in case of an error) and the identifier of the
|
|
* new MonitoredItem. */
|
|
* new MonitoredItem. */
|
|
-UA_MonitoredItemCreateResult UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_MonitoredItemCreateResult UA_EXPORT
|
|
UA_Server_createDataChangeMonitoredItem(UA_Server *server,
|
|
UA_Server_createDataChangeMonitoredItem(UA_Server *server,
|
|
UA_TimestampsToReturn timestampsToReturn,
|
|
UA_TimestampsToReturn timestampsToReturn,
|
|
const UA_MonitoredItemCreateRequest item,
|
|
const UA_MonitoredItemCreateRequest item,
|
|
@@ -928,7 +923,7 @@ UA_Server_createDataChangeMonitoredItem(UA_Server *server,
|
|
/* const UA_MonitoredItemCreateRequest item, void *context, */
|
|
/* const UA_MonitoredItemCreateRequest item, void *context, */
|
|
/* UA_Server_EventNotificationCallback callback); */
|
|
/* UA_Server_EventNotificationCallback callback); */
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_deleteMonitoredItem(UA_Server *server, UA_UInt32 monitoredItemId);
|
|
UA_Server_deleteMonitoredItem(UA_Server *server, UA_UInt32 monitoredItemId);
|
|
|
|
|
|
#endif
|
|
#endif
|
|
@@ -951,7 +946,7 @@ typedef UA_StatusCode
|
|
UA_Variant *output);
|
|
UA_Variant *output);
|
|
|
|
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_setMethodNode_callback(UA_Server *server,
|
|
UA_Server_setMethodNode_callback(UA_Server *server,
|
|
const UA_NodeId methodNodeId,
|
|
const UA_NodeId methodNodeId,
|
|
UA_MethodCallback methodCallback);
|
|
UA_MethodCallback methodCallback);
|
|
@@ -976,13 +971,13 @@ UA_Server_setMethodNode_callback(UA_Server *server,
|
|
* @param propertyName The name of the property
|
|
* @param propertyName The name of the property
|
|
* @param value The value to be set for the event attribute
|
|
* @param value The value to be set for the event attribute
|
|
* @return The StatusCode for setting the event attribute */
|
|
* @return The StatusCode for setting the event attribute */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_writeObjectProperty(UA_Server *server, const UA_NodeId objectId,
|
|
UA_Server_writeObjectProperty(UA_Server *server, const UA_NodeId objectId,
|
|
const UA_QualifiedName propertyName,
|
|
const UA_QualifiedName propertyName,
|
|
const UA_Variant value);
|
|
const UA_Variant value);
|
|
|
|
|
|
/* Directly point to the scalar value instead of a variant */
|
|
/* Directly point to the scalar value instead of a variant */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_writeObjectProperty_scalar(UA_Server *server, const UA_NodeId objectId,
|
|
UA_Server_writeObjectProperty_scalar(UA_Server *server, const UA_NodeId objectId,
|
|
const UA_QualifiedName propertyName,
|
|
const UA_QualifiedName propertyName,
|
|
const void *value, const UA_DataType *type);
|
|
const void *value, const UA_DataType *type);
|
|
@@ -994,13 +989,13 @@ UA_Server_writeObjectProperty_scalar(UA_Server *server, const UA_NodeId objectId
|
|
* @param propertyName The name of the property
|
|
* @param propertyName The name of the property
|
|
* @param value Contains the property value after reading. Must not be NULL.
|
|
* @param value Contains the property value after reading. Must not be NULL.
|
|
* @return The StatusCode for setting the event attribute */
|
|
* @return The StatusCode for setting the event attribute */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_readObjectProperty(UA_Server *server, const UA_NodeId objectId,
|
|
UA_Server_readObjectProperty(UA_Server *server, const UA_NodeId objectId,
|
|
const UA_QualifiedName propertyName,
|
|
const UA_QualifiedName propertyName,
|
|
UA_Variant *value);
|
|
UA_Variant *value);
|
|
|
|
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
-UA_CallMethodResult UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_CallMethodResult UA_EXPORT
|
|
UA_Server_call(UA_Server *server, const UA_CallMethodRequest *request);
|
|
UA_Server_call(UA_Server *server, const UA_CallMethodRequest *request);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -1047,7 +1042,7 @@ UA_EXPORT extern const UA_ViewAttributes UA_ViewAttributes_default;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* Don't use this function. There are typed versions as inline functions. */
|
|
/* Don't use this function. There are typed versions as inline functions. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
__UA_Server_addNode(UA_Server *server, const UA_NodeClass nodeClass,
|
|
__UA_Server_addNode(UA_Server *server, const UA_NodeClass nodeClass,
|
|
const UA_NodeId *requestedNewNodeId,
|
|
const UA_NodeId *requestedNewNodeId,
|
|
const UA_NodeId *parentNodeId,
|
|
const UA_NodeId *parentNodeId,
|
|
@@ -1058,7 +1053,7 @@ __UA_Server_addNode(UA_Server *server, const UA_NodeClass nodeClass,
|
|
const UA_DataType *attributeType,
|
|
const UA_DataType *attributeType,
|
|
void *nodeContext, UA_NodeId *outNewNodeId);
|
|
void *nodeContext, UA_NodeId *outNewNodeId);
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addVariableNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
UA_Server_addVariableNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId referenceTypeId,
|
|
const UA_NodeId referenceTypeId,
|
|
@@ -1073,7 +1068,7 @@ UA_Server_addVariableNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
nodeContext, outNewNodeId);
|
|
nodeContext, outNewNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addVariableTypeNode(UA_Server *server,
|
|
UA_Server_addVariableTypeNode(UA_Server *server,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
@@ -1090,7 +1085,7 @@ UA_Server_addVariableTypeNode(UA_Server *server,
|
|
nodeContext, outNewNodeId);
|
|
nodeContext, outNewNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addObjectNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
UA_Server_addObjectNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId referenceTypeId,
|
|
const UA_NodeId referenceTypeId,
|
|
@@ -1105,7 +1100,7 @@ UA_Server_addObjectNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
nodeContext, outNewNodeId);
|
|
nodeContext, outNewNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addObjectTypeNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
UA_Server_addObjectTypeNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId referenceTypeId,
|
|
const UA_NodeId referenceTypeId,
|
|
@@ -1119,7 +1114,7 @@ UA_Server_addObjectTypeNode(UA_Server *server, const UA_NodeId requestedNewNodeI
|
|
nodeContext, outNewNodeId);
|
|
nodeContext, outNewNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addViewNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
UA_Server_addViewNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId referenceTypeId,
|
|
const UA_NodeId referenceTypeId,
|
|
@@ -1133,7 +1128,7 @@ UA_Server_addViewNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
nodeContext, outNewNodeId);
|
|
nodeContext, outNewNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addReferenceTypeNode(UA_Server *server,
|
|
UA_Server_addReferenceTypeNode(UA_Server *server,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
@@ -1149,7 +1144,7 @@ UA_Server_addReferenceTypeNode(UA_Server *server,
|
|
nodeContext, outNewNodeId);
|
|
nodeContext, outNewNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addDataTypeNode(UA_Server *server,
|
|
UA_Server_addDataTypeNode(UA_Server *server,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
@@ -1164,7 +1159,7 @@ UA_Server_addDataTypeNode(UA_Server *server,
|
|
nodeContext, outNewNodeId);
|
|
nodeContext, outNewNodeId);
|
|
}
|
|
}
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addDataSourceVariableNode(UA_Server *server,
|
|
UA_Server_addDataSourceVariableNode(UA_Server *server,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
@@ -1177,7 +1172,7 @@ UA_Server_addDataSourceVariableNode(UA_Server *server,
|
|
|
|
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addMethodNodeEx(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
UA_Server_addMethodNodeEx(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId referenceTypeId,
|
|
const UA_NodeId referenceTypeId,
|
|
@@ -1191,7 +1186,7 @@ UA_Server_addMethodNodeEx(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
UA_NodeId *outputArgumentsOutNewNodeId,
|
|
UA_NodeId *outputArgumentsOutNewNodeId,
|
|
void *nodeContext, UA_NodeId *outNewNodeId);
|
|
void *nodeContext, UA_NodeId *outNewNodeId);
|
|
|
|
|
|
-static UA_INLINE UA_THREADSAFE UA_StatusCode
|
|
|
|
|
|
+static UA_INLINE UA_StatusCode
|
|
UA_Server_addMethodNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
UA_Server_addMethodNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId,
|
|
const UA_QualifiedName browseName, const UA_MethodAttributes attr,
|
|
const UA_QualifiedName browseName, const UA_MethodAttributes attr,
|
|
@@ -1242,7 +1237,7 @@ UA_Server_addMethodNode(UA_Server *server, const UA_NodeId requestedNewNodeId,
|
|
* ``VariableAttributes`` for variables, ``ObjectAttributes`` for objects, and
|
|
* ``VariableAttributes`` for variables, ``ObjectAttributes`` for objects, and
|
|
* so on. Missing attributes are taken from the TypeDefinition node if
|
|
* so on. Missing attributes are taken from the TypeDefinition node if
|
|
* applicable. */
|
|
* applicable. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addNode_begin(UA_Server *server, const UA_NodeClass nodeClass,
|
|
UA_Server_addNode_begin(UA_Server *server, const UA_NodeClass nodeClass,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId requestedNewNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
const UA_NodeId parentNodeId,
|
|
@@ -1252,12 +1247,12 @@ UA_Server_addNode_begin(UA_Server *server, const UA_NodeClass nodeClass,
|
|
const void *attr, const UA_DataType *attributeType,
|
|
const void *attr, const UA_DataType *attributeType,
|
|
void *nodeContext, UA_NodeId *outNewNodeId);
|
|
void *nodeContext, UA_NodeId *outNewNodeId);
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addNode_finish(UA_Server *server, const UA_NodeId nodeId);
|
|
UA_Server_addNode_finish(UA_Server *server, const UA_NodeId nodeId);
|
|
|
|
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
#ifdef UA_ENABLE_METHODCALLS
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addMethodNode_finish(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_addMethodNode_finish(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_MethodCallback method,
|
|
UA_MethodCallback method,
|
|
size_t inputArgumentsSize, const UA_Argument* inputArguments,
|
|
size_t inputArgumentsSize, const UA_Argument* inputArguments,
|
|
@@ -1266,19 +1261,19 @@ UA_Server_addMethodNode_finish(UA_Server *server, const UA_NodeId nodeId,
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* Deletes a node and optionally all references leading to the node. */
|
|
/* Deletes a node and optionally all references leading to the node. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_deleteNode(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Server_deleteNode(UA_Server *server, const UA_NodeId nodeId,
|
|
UA_Boolean deleteReferences);
|
|
UA_Boolean deleteReferences);
|
|
|
|
|
|
/**
|
|
/**
|
|
* Reference Management
|
|
* Reference Management
|
|
* -------------------- */
|
|
* -------------------- */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_addReference(UA_Server *server, const UA_NodeId sourceId,
|
|
UA_Server_addReference(UA_Server *server, const UA_NodeId sourceId,
|
|
const UA_NodeId refTypeId,
|
|
const UA_NodeId refTypeId,
|
|
const UA_ExpandedNodeId targetId, UA_Boolean isForward);
|
|
const UA_ExpandedNodeId targetId, UA_Boolean isForward);
|
|
|
|
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_deleteReference(UA_Server *server, const UA_NodeId sourceNodeId,
|
|
UA_Server_deleteReference(UA_Server *server, const UA_NodeId sourceNodeId,
|
|
const UA_NodeId referenceTypeId, UA_Boolean isForward,
|
|
const UA_NodeId referenceTypeId, UA_Boolean isForward,
|
|
const UA_ExpandedNodeId targetNodeId,
|
|
const UA_ExpandedNodeId targetNodeId,
|
|
@@ -1320,7 +1315,7 @@ UA_Server_deleteReference(UA_Server *server, const UA_NodeId sourceNodeId,
|
|
* @param eventType The type of the event for which a node should be created
|
|
* @param eventType The type of the event for which a node should be created
|
|
* @param outNodeId The NodeId of the newly created node for the event
|
|
* @param outNodeId The NodeId of the newly created node for the event
|
|
* @return The StatusCode of the UA_Server_createEvent method */
|
|
* @return The StatusCode of the UA_Server_createEvent method */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_createEvent(UA_Server *server, const UA_NodeId eventType,
|
|
UA_Server_createEvent(UA_Server *server, const UA_NodeId eventType,
|
|
UA_NodeId *outNodeId);
|
|
UA_NodeId *outNodeId);
|
|
|
|
|
|
@@ -1331,7 +1326,7 @@ UA_Server_createEvent(UA_Server *server, const UA_NodeId eventType,
|
|
* @param outEvent the EventId of the new event
|
|
* @param outEvent the EventId of the new event
|
|
* @param deleteEventNode Specifies whether the node representation of the event should be deleted
|
|
* @param deleteEventNode Specifies whether the node representation of the event should be deleted
|
|
* @return The StatusCode of the UA_Server_triggerEvent method */
|
|
* @return The StatusCode of the UA_Server_triggerEvent method */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_triggerEvent(UA_Server *server, const UA_NodeId eventNodeId, const UA_NodeId originId,
|
|
UA_Server_triggerEvent(UA_Server *server, const UA_NodeId eventNodeId, const UA_NodeId originId,
|
|
UA_ByteString *outEventId, const UA_Boolean deleteEventNode);
|
|
UA_ByteString *outEventId, const UA_Boolean deleteEventNode);
|
|
|
|
|
|
@@ -1349,22 +1344,22 @@ UA_Server_updateCertificate(UA_Server *server,
|
|
* Utility Functions
|
|
* Utility Functions
|
|
* ----------------- */
|
|
* ----------------- */
|
|
/* Add a new namespace to the server. Returns the index of the new namespace */
|
|
/* Add a new namespace to the server. Returns the index of the new namespace */
|
|
-UA_UInt16 UA_EXPORT UA_THREADSAFE UA_Server_addNamespace(UA_Server *server, const char* name);
|
|
|
|
|
|
+UA_UInt16 UA_EXPORT UA_Server_addNamespace(UA_Server *server, const char* name);
|
|
|
|
|
|
/* Get namespace by name from the server. */
|
|
/* Get namespace by name from the server. */
|
|
-UA_StatusCode UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_StatusCode UA_EXPORT
|
|
UA_Server_getNamespaceByName(UA_Server *server, const UA_String namespaceUri,
|
|
UA_Server_getNamespaceByName(UA_Server *server, const UA_String namespaceUri,
|
|
size_t* foundIndex);
|
|
size_t* foundIndex);
|
|
|
|
|
|
#ifdef UA_ENABLE_HISTORIZING
|
|
#ifdef UA_ENABLE_HISTORIZING
|
|
-UA_Boolean UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_Boolean UA_EXPORT
|
|
UA_Server_AccessControl_allowHistoryUpdateUpdateData(UA_Server *server,
|
|
UA_Server_AccessControl_allowHistoryUpdateUpdateData(UA_Server *server,
|
|
const UA_NodeId *sessionId, void *sessionContext,
|
|
const UA_NodeId *sessionId, void *sessionContext,
|
|
const UA_NodeId *nodeId,
|
|
const UA_NodeId *nodeId,
|
|
UA_PerformUpdateType performInsertReplace,
|
|
UA_PerformUpdateType performInsertReplace,
|
|
const UA_DataValue *value);
|
|
const UA_DataValue *value);
|
|
|
|
|
|
-UA_Boolean UA_EXPORT UA_THREADSAFE
|
|
|
|
|
|
+UA_Boolean UA_EXPORT
|
|
UA_Server_AccessControl_allowHistoryUpdateDeleteRawModified(UA_Server *server,
|
|
UA_Server_AccessControl_allowHistoryUpdateDeleteRawModified(UA_Server *server,
|
|
const UA_NodeId *sessionId, void *sessionContext,
|
|
const UA_NodeId *sessionId, void *sessionContext,
|
|
const UA_NodeId *nodeId,
|
|
const UA_NodeId *nodeId,
|
|
@@ -1373,89 +1368,6 @@ UA_Server_AccessControl_allowHistoryUpdateDeleteRawModified(UA_Server *server,
|
|
bool isDeleteModified);
|
|
bool isDeleteModified);
|
|
#endif // UA_ENABLE_HISTORIZING
|
|
#endif // UA_ENABLE_HISTORIZING
|
|
|
|
|
|
-/**
|
|
|
|
-* .. _async_operations:
|
|
|
|
-*
|
|
|
|
-* Async Operations
|
|
|
|
-* ----------------
|
|
|
|
-* Some operations (such as reading out a sensor that needs to warm up) can take
|
|
|
|
-* quite some time. In order not to block the server during such an operation, it
|
|
|
|
-* can be "outsourced" to a worker thread.
|
|
|
|
-*
|
|
|
|
-* Take the example of a CallRequest. It is split into the individual method call
|
|
|
|
-* operations. If the method is marked as async, then the operation is put into a
|
|
|
|
-* queue where it is be retrieved by a worker. The worker returns the result when
|
|
|
|
-* ready. See the examples in ``/examples/tutorial_server_method_async.c`` for
|
|
|
|
-* the usage.
|
|
|
|
-*
|
|
|
|
-* Note that the operation can time out (see the asyncOperationTimeout setting in
|
|
|
|
-* the server config) also when it has been retrieved by the worker. */
|
|
|
|
-
|
|
|
|
-#if UA_MULTITHREADING >= 100
|
|
|
|
-
|
|
|
|
-/* Set the async flag in a method node */
|
|
|
|
-UA_StatusCode UA_EXPORT
|
|
|
|
-UA_Server_setMethodNodeAsync(UA_Server *server, const UA_NodeId id,
|
|
|
|
- UA_Boolean isAsync);
|
|
|
|
-
|
|
|
|
-typedef enum {
|
|
|
|
- UA_ASYNCOPERATIONTYPE_INVALID, /* 0, the default */
|
|
|
|
- UA_ASYNCOPERATIONTYPE_CALL
|
|
|
|
- /* UA_ASYNCOPERATIONTYPE_READ, */
|
|
|
|
- /* UA_ASYNCOPERATIONTYPE_WRITE, */
|
|
|
|
-} UA_AsyncOperationType;
|
|
|
|
-
|
|
|
|
-typedef union {
|
|
|
|
- UA_CallMethodRequest callMethodRequest;
|
|
|
|
- /* UA_ReadValueId readValueId; */
|
|
|
|
- /* UA_WriteValue writeValue; */
|
|
|
|
-} UA_AsyncOperationRequest;
|
|
|
|
-
|
|
|
|
-typedef union {
|
|
|
|
- UA_CallMethodResult callMethodResult;
|
|
|
|
- /* UA_DataValue readResult; */
|
|
|
|
- /* UA_StatusCode writeResult; */
|
|
|
|
-} UA_AsyncOperationResponse;
|
|
|
|
-
|
|
|
|
-/* Get the next async operation without blocking
|
|
|
|
- *
|
|
|
|
- * @param server The server object
|
|
|
|
- * @param type The type of the async operation
|
|
|
|
- * @param request Receives pointer to the operation
|
|
|
|
- * @param context Receives the pointer to the operation context
|
|
|
|
- * @param timeout The timestamp when the operation times out and can
|
|
|
|
- * no longer be returned to the client. The response has to
|
|
|
|
- * be set in UA_Server_setAsyncOperationResult in any case.
|
|
|
|
- * @return false if queue is empty, true else */
|
|
|
|
-UA_Boolean UA_EXPORT
|
|
|
|
-UA_Server_getAsyncOperationNonBlocking(UA_Server *server, UA_AsyncOperationType *type,
|
|
|
|
- const UA_AsyncOperationRequest **request,
|
|
|
|
- void **context, UA_DateTime *timeout);
|
|
|
|
-
|
|
|
|
-/* UA_Boolean UA_EXPORT */
|
|
|
|
-/* UA_Server_getAsyncOperationBlocking(UA_Server *server, UA_AsyncOperationType *type, */
|
|
|
|
-/* const UA_AsyncOperationRequest **request, */
|
|
|
|
-/* void **context, UA_DateTime *timeout); */
|
|
|
|
-
|
|
|
|
-/* Submit an async operation result
|
|
|
|
- *
|
|
|
|
- * @param server The server object
|
|
|
|
- * @param response Pointer to the operation result
|
|
|
|
- * @param context Pointer to the operation context */
|
|
|
|
-void UA_EXPORT
|
|
|
|
-UA_Server_setAsyncOperationResult(UA_Server *server,
|
|
|
|
- const UA_AsyncOperationResponse *response,
|
|
|
|
- void *context);
|
|
|
|
-
|
|
|
|
-/* Get the next async operation. Attention! This method is deprecated and has
|
|
|
|
- * been replaced by UA_Server_getAsyncOperationNonBlocking! */
|
|
|
|
-UA_DEPRECATED UA_Boolean UA_EXPORT
|
|
|
|
-UA_Server_getAsyncOperation(UA_Server *server, UA_AsyncOperationType *type,
|
|
|
|
- const UA_AsyncOperationRequest **request,
|
|
|
|
- void **context);
|
|
|
|
-
|
|
|
|
-#endif /* !UA_MULTITHREADING >= 100 */
|
|
|
|
-
|
|
|
|
_UA_END_DECLS
|
|
_UA_END_DECLS
|
|
|
|
|
|
#endif /* UA_SERVER_H_ */
|
|
#endif /* UA_SERVER_H_ */
|