00001 #ifndef UA_SESSION_H_ 00002 #define UA_SESSION_H_ 00003 00004 #include "queue.h" 00005 #include "ua_types.h" 00006 #include "ua_securechannel.h" 00007 00008 #define MAXCONTINUATIONPOINTS 5 00009 00016 struct ContinuationPointEntry { 00017 LIST_ENTRY(ContinuationPointEntry) pointers; 00018 UA_ByteString identifier; 00019 UA_BrowseDescription browseDescription; 00020 UA_Int32 continuationIndex; 00021 UA_UInt32 maxReferences; 00022 }; 00023 00024 struct UA_Session { 00025 UA_ApplicationDescription clientDescription; 00026 UA_Boolean activated; 00027 UA_String sessionName; 00028 UA_NodeId authenticationToken; 00029 UA_NodeId sessionId; 00030 UA_UInt32 maxRequestMessageSize; 00031 UA_UInt32 maxResponseMessageSize; 00032 UA_Int64 timeout; 00033 UA_DateTime validTill; 00034 UA_SecureChannel *channel; 00035 UA_UInt16 availableContinuationPoints; 00036 LIST_HEAD(ContinuationPointList, ContinuationPointEntry) continuationPoints; 00037 }; 00038 00039 extern UA_Session anonymousSession; 00040 extern UA_Session adminSession; 00041 00042 void UA_Session_init(UA_Session *session); 00043 void UA_Session_deleteMembersCleanup(UA_Session *session); 00044 00046 void UA_Session_updateLifetime(UA_Session *session); 00047 00050 #endif /* UA_SESSION_H_ */