/home/travis/build/open62541/open62541/src/ua_session.h
Go to the documentation of this file.
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_ */