14#ifndef UA_SERVER_ASYNC_H_
15#define UA_SERVER_ASYNC_H_
24#if UA_MULTITHREADING >= 100
26struct UA_AsyncResponse;
27typedef struct UA_AsyncResponse UA_AsyncResponse;
30typedef struct UA_AsyncOperation {
36 UA_AsyncResponse *parent;
40struct UA_AsyncResponse {
46 UA_AsyncOperationType operationType;
56typedef TAILQ_HEAD(UA_AsyncOperationQueue, UA_AsyncOperation) UA_AsyncOperationQueue;
61 size_t asyncResponsesCount;
66 UA_AsyncOperationQueue newQueue;
67 UA_AsyncOperationQueue dispatchedQueue;
70 UA_AsyncOperationQueue resultQueue;
76void UA_AsyncManager_init(UA_AsyncManager *am,
UA_Server *server);
77void UA_AsyncManager_clear(UA_AsyncManager *am,
UA_Server *server);
80UA_AsyncManager_createAsyncResponse(UA_AsyncManager *am,
UA_Server *server,
84 const UA_AsyncOperationType operationType,
85 UA_AsyncResponse **outAr);
89UA_AsyncManager_removeAsyncResponse(UA_AsyncManager *am, UA_AsyncResponse *ar);
92UA_AsyncManager_createAsyncOp(UA_AsyncManager *am,
UA_Server *server,
93 UA_AsyncResponse *ar,
size_t opIndex,
98 size_t opIndex,
const void *requestOperation,
99 void *responseOperation, UA_AsyncResponse **ar);
106 UA_AsyncServiceOperation operationCallback,
107 const size_t *requestOperations,
109 size_t *responseOperations,
111 UA_AsyncResponse **ar)
112UA_FUNC_ATTR_WARN_UNUSED_RESULT;
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
#define TAILQ_HEAD(name, type)
#define TAILQ_ENTRY(type)