
distri and nodeset feature * add UaModeler project including XML export * add nodeset using test server
52 lines
1.8 KiB
C
52 lines
1.8 KiB
C
#ifndef UA_CHANNEL_MANAGER_H_
|
|
#define UA_CHANNEL_MANAGER_H_
|
|
|
|
#include "ua_util.h"
|
|
#include "ua_server.h"
|
|
#include "ua_securechannel.h"
|
|
#include "queue.h"
|
|
|
|
typedef struct channel_list_entry {
|
|
UA_SecureChannel channel;
|
|
LIST_ENTRY(channel_list_entry) pointers;
|
|
} channel_list_entry;
|
|
|
|
typedef struct UA_SecureChannelManager {
|
|
LIST_HEAD(channel_list, channel_list_entry) channels; // doubly-linked list of channels
|
|
size_t maxChannelCount;
|
|
size_t currentChannelCount;
|
|
UA_UInt32 maxChannelLifetime;
|
|
UA_MessageSecurityMode securityMode;
|
|
UA_DateTime channelLifeTime;
|
|
UA_UInt32 lastChannelId;
|
|
UA_UInt32 lastTokenId;
|
|
UA_Server *server;
|
|
} UA_SecureChannelManager;
|
|
|
|
UA_StatusCode
|
|
UA_SecureChannelManager_init(UA_SecureChannelManager *cm, size_t maxChannelCount,
|
|
UA_UInt32 tokenLifetime, UA_UInt32 startChannelId,
|
|
UA_UInt32 startTokenId, UA_Server *server);
|
|
|
|
void UA_SecureChannelManager_deleteMembers(UA_SecureChannelManager *cm);
|
|
|
|
void UA_SecureChannelManager_cleanupTimedOut(UA_SecureChannelManager *cm, UA_DateTime now);
|
|
|
|
UA_StatusCode
|
|
UA_SecureChannelManager_open(UA_SecureChannelManager *cm, UA_Connection *conn,
|
|
const UA_OpenSecureChannelRequest *request,
|
|
UA_OpenSecureChannelResponse *response);
|
|
|
|
UA_StatusCode
|
|
UA_SecureChannelManager_renew(UA_SecureChannelManager *cm, UA_Connection *conn,
|
|
const UA_OpenSecureChannelRequest *request,
|
|
UA_OpenSecureChannelResponse *response);
|
|
|
|
UA_SecureChannel *
|
|
UA_SecureChannelManager_get(UA_SecureChannelManager *cm, UA_UInt32 channelId);
|
|
|
|
UA_StatusCode
|
|
UA_SecureChannelManager_close(UA_SecureChannelManager *cm, UA_UInt32 channelId);
|
|
|
|
#endif /* UA_CHANNEL_MANAGER_H_ */
|