OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 const String _DART_SESSION_ID = "DARTSESSID"; | 5 const String _DART_SESSION_ID = "DARTSESSID"; |
6 | 6 |
7 // A _HttpSession is a node in a double-linked list, with _next and _prev being | 7 // A _HttpSession is a node in a double-linked list, with _next and _prev being |
8 // the previous and next pointers. | 8 // the previous and next pointers. |
9 class _HttpSession implements HttpSession { | 9 class _HttpSession implements HttpSession { |
10 _HttpSession(_HttpSessionManager this._sessionManager, String this.id) | 10 _HttpSession(_HttpSessionManager this._sessionManager, String this.id) |
11 : _lastSeen = new Date.now(); | 11 : _lastSeen = new Date.now(); |
12 | 12 |
13 void destroy() { | 13 void destroy() { |
14 _destroyed = true; | 14 _destroyed = true; |
15 _sessionManager._removeFromTimeoutQueue(this); | 15 _sessionManager._removeFromTimeoutQueue(this); |
16 _sessionManager._sessions.remove(id); | 16 _sessionManager._sessions.remove(id); |
17 } | 17 } |
18 | 18 |
19 // Mark the session as seen. This will reset the timeout and move the node to | 19 // Mark the session as seen. This will reset the timeout and move the node to |
20 // the end of the timeout queue. | 20 // the end of the timeout queue. |
21 void _markSeen() { | 21 void _markSeen() { |
22 _lastSeen = new Date.now(); | 22 _lastSeen = new Date.now(); |
23 _sessionManager._bumpToEnd(this); | 23 _sessionManager._bumpToEnd(this); |
24 } | 24 } |
25 | 25 |
26 Dynamic data; | 26 dynamic data; |
27 | 27 |
28 Date get lastSeen => _lastSeen; | 28 Date get lastSeen => _lastSeen; |
29 | 29 |
30 final String id; | 30 final String id; |
31 | 31 |
32 void set onTimeout(void callback()) { | 32 void set onTimeout(void callback()) { |
33 _timeoutCallback = callback; | 33 _timeoutCallback = callback; |
34 } | 34 } |
35 | 35 |
36 // Destroyed marked. Used by the http connection to see if a session is valid. | 36 // Destroyed marked. Used by the http connection to see if a session is valid. |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 | 150 |
151 Map<String, _HttpSession> _sessions; | 151 Map<String, _HttpSession> _sessions; |
152 int _sessionTimeout = 20 * 60; // 20 mins. | 152 int _sessionTimeout = 20 * 60; // 20 mins. |
153 _HttpSession _head; | 153 _HttpSession _head; |
154 _HttpSession _tail; | 154 _HttpSession _tail; |
155 Timer _timer; | 155 Timer _timer; |
156 | 156 |
157 external static Uint8List _getRandomBytes(int count); | 157 external static Uint8List _getRandomBytes(int count); |
158 } | 158 } |
159 | 159 |
OLD | NEW |