| 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 |