0001    import Foundation
0002    
0003    protocol SessionDriver
MemorySessionDriver.swift:6
class MemorySessionDriver: SessionDriver {
Session.swift:22
	static var driver: SessionDriver = MemorySessionDriver()
{ 0004 var sessions
Session.swift:26
			if let session = self.driver.sessions[key] {
Session.swift:30
				self.driver.sessions[key] = request.session
Session.swift:47
			Session.driver.sessions.removeValueForKey(key)
Session.swift:67
				Session.driver.sessions[key] = self
: [String: Session] { get set } 0005 } 0006 0007 public class Session
MemorySessionDriver.swift:7
	var sessions = [String: Session]()
Request.swift:47
    public var session: Session = Session()
Request.swift:47
    public var session: Session = Session()
Session.swift:4
	var sessions: [String: Session] { get set }
Session.swift:47
			Session.driver.sessions.removeValueForKey(key)
Session.swift:67
				Session.driver.sessions[key] = self
SessionMiddleware.swift:5
            Session.start(request)
SessionMiddleware.swift:9
            Session.close(request: request, response: response)
{ 0008 0009 public enum DriverType
Session.swift:12
	public static var type: DriverType = .Memory {
{ 0010 case File
Session.swift:17
				case .File:
, Memory
Session.swift:15
				case .Memory:
Session.swift:12
	public static var type: DriverType = .Memory {
0011 } 0012 public static var type
Session.swift:14
			switch self.type {
: DriverType = .Memory { 0013 didSet { 0014 switch self.type { 0015 case .Memory: 0016 self.driver = MemorySessionDriver() 0017 case .File: 0018 fatalError("File driver not yet supported") 0019 } 0020 } 0021 } 0022 static var driver
Session.swift:16
					self.driver = MemorySessionDriver()
Session.swift:26
			if let session = self.driver.sessions[key] {
Session.swift:30
				self.driver.sessions[key] = request.session
Session.swift:47
			Session.driver.sessions.removeValueForKey(key)
Session.swift:67
				Session.driver.sessions[key] = self
: SessionDriver = MemorySessionDriver() 0023 0024 public static func start
SessionMiddleware.swift:5
            Session.start(request)
(request: Request) { 0025 if let key = request.cookies["vapor-session"] { 0026 if let session = self.driver.sessions[key] { 0027 request.session = session 0028 } else { 0029 request.session.key = key 0030 self.driver.sessions[key] = request.session 0031 } 0032 } 0033 } 0034 0035 public static func close
SessionMiddleware.swift:9
            Session.close(request: request, response: response)
(request request: Request, response: Response) { 0036 if let key = request.session.key { 0037 response.cookies["vapor-session"] = key 0038 } 0039 } 0040 0041 init
Request.swift:47
    public var session: Session = Session()
() { 0042 //do nothing 0043 } 0044 0045 public func destroy() { 0046 if let key = self.key { 0047 Session.driver.sessions.removeValueForKey(key) 0048 } 0049 } 0050 0051 var key
Session.swift:29
				request.session.key = key
Session.swift:36
		if let key = request.session.key {
Session.swift:46
		if let key = self.key {
Session.swift:54
			if self.key == nil {
Session.swift:66
				self.key = key
: String? 0052 public var data: [String: String] = [:] { 0053 didSet { 0054 if self.key == nil { 0055 0056 var key = "\(NSDate().timeIntervalSinceNow)" 0057 key += "v@p0r" 0058 key += "\(Int.random(min: 0, max: 9999))" 0059 key += "s3sS10n" 0060 key += "\(Int.random(min: 0, max: 9999))" 0061 key += "k3y" 0062 key += "\(Int.random(min: 0, max: 9999))" 0063 0064 key = Hash.make(key) 0065 0066 self.key = key 0067 Session.driver.sessions[key] = self 0068 } 0069 } 0070 } 0071 0072 }