Go to the documentation of this file.00001 #ifndef UA_CHANNEL_MANAGER_H_
00002 #define UA_CHANNEL_MANAGER_H_
00003
00004 #include "ua_util.h"
00005 #include "ua_server.h"
00006 #include "ua_securechannel.h"
00007 #include "queue.h"
00008
00009 typedef struct channel_list_entry {
00010 UA_SecureChannel channel;
00011 LIST_ENTRY(channel_list_entry) pointers;
00012 } channel_list_entry;
00013
00014 typedef struct UA_SecureChannelManager {
00015 LIST_HEAD(channel_list, channel_list_entry) channels;
00016 UA_Int32 maxChannelCount;
00017 UA_DateTime maxChannelLifetime;
00018 UA_MessageSecurityMode securityMode;
00019 UA_DateTime channelLifeTime;
00020 UA_Int32 lastChannelId;
00021 UA_UInt32 lastTokenId;
00022 } UA_SecureChannelManager;
00023
00024 UA_StatusCode UA_SecureChannelManager_init(UA_SecureChannelManager *cm, UA_UInt32 maxChannelCount,
00025 UA_UInt32 tokenLifetime, UA_UInt32 startChannelId,
00026 UA_UInt32 startTokenId);
00027 void UA_SecureChannelManager_deleteMembers(UA_SecureChannelManager *cm);
00028 void UA_SecureChannelManager_cleanupTimedOut(UA_SecureChannelManager *cm, UA_DateTime now);
00029 UA_StatusCode UA_SecureChannelManager_open(UA_SecureChannelManager *cm, UA_Connection *conn,
00030 const UA_OpenSecureChannelRequest *request,
00031 UA_OpenSecureChannelResponse *response);
00032 UA_StatusCode UA_SecureChannelManager_renew(UA_SecureChannelManager *cm, UA_Connection *conn,
00033 const UA_OpenSecureChannelRequest *request,
00034 UA_OpenSecureChannelResponse *response);
00035 UA_SecureChannel * UA_SecureChannelManager_get(UA_SecureChannelManager *cm, UA_UInt32 channelId);
00036 UA_StatusCode UA_SecureChannelManager_close(UA_SecureChannelManager *cm, UA_UInt32 channelId);
00037
00038 #endif