0001 // Response.swift 0002 // 0003 // The MIT License (MIT) 0004 // 0005 // Copyright (c) 2015 Zewo 0006 // 0007 // Permission is hereby granted, free of charge, to any person obtaining a copy 0008 // of this software and associated documentation files (the "Software"), to deal 0009 // in the Software without restriction, including without limitation the rights 0010 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 0011 // copies of the Software, and to permit persons to whom the Software is 0012 // furnished to do so, subject to the following conditions: 0013 // 0014 // The above copyright notice and this permission notice shall be included in all 0015 // copies or substantial portions of the Software. 0016 // 0017 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0018 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0019 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 0020 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 0021 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 0022 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 0023 // SOFTWARE. 0024 0025 @_exported import Stream 0026 0027 public struct Response: MessageType { 0028 public typealias Upgrade = (Request, StreamType) throws -> Void 0029 0030 public var status
ClientType.swift:30 func send(request: Request, middleware: MiddlewareType...) throws -> ResponseBranchMiddleware.swift:48 public func respond(request: Request, chain: ChainType) throws -> Response {MergeMiddleware.swift:40 public func respond(request: Request, chain: ChainType) throws -> Response {MiddlewareType.swift:26 func respond(request: Request, chain: ChainType) throws -> ResponseMiddlewareType.swift:44 let respond: (request: Request, chain: ChainType) throws -> ResponseMiddlewareType.swift:46 public init(respond: (request: Request, chain: ChainType) throws -> Response) {MiddlewareType.swift:50 public func respond(request: Request, chain: ChainType) throws -> Response {ParserType.swift:32 func parse(data: Data) throws -> Response?ResponseParser.swift:41 var completion: Response -> VoidResponseParser.swift:43 init(completion: Response -> Void) {ResponseParser.swift:65 var response: Response?ResponseParser.swift:86 public func parse(data: Data) throws -> Response? {ResponseParser.swift:114 public func parse(convertible: DataConvertible) throws -> Response? {ResponseParser.swift:199 let response = Response(Request.swift:30 public typealias Upgrade = (Response, StreamType) throws -> VoidResponderType.swift:26 func proceed(request: Request) throws -> ResponseResponderType.swift:30 func respond(request: Request) throws -> ResponseResponderType.swift:34 public func proceed(request: Request) throws -> Response {ResponderType.swift:39 public typealias Respond = Request throws -> ResponseResponderType.swift:48 public func respond(request: Request) throws -> Response {Response.swift:49 extension Response {Response.swift:106 extension Response: CustomStringConvertible {Response.swift:129 extension Response: CustomDebugStringConvertible {Response.swift:135 extension Response: Hashable {Response.swift:141 public func ==(lhs: Response, rhs: Response) -> Bool {Response.swift:141 public func ==(lhs: Response, rhs: Response) -> Bool {Route.swift:38 public func respond(request: Request) throws -> Response {RouterType.swift:32 public func respond(request: Request) throws -> Response {ResponseSerializer.swift:30 public func serialize(response: Response, @noescape send: Data throws -> Void) throws {SerializerType.swift:32 func serialize(response: Response, @noescape send: Data throws -> Void) throws: Status 0031 public var version: Version 0032 public var headers
Response.swift:98 return status.statusCodeResponse.swift:102 return status.reasonPhrase: Headers 0033 public var cookies
ResponseSerializer.swift:36 for (name, value) in response.headers {: Cookies 0034 public var body
Response.swift:114 for cookie in cookies {ResponseSerializer.swift:41 for cookie in response.cookies {: Body 0035 public var upgrade: Upgrade? 0036 0037 public var storage: Storage = [:] 0038 0039 init(status: Status, version: Version, headers: Headers, cookies: Cookies, body: Body, upgrade: Upgrade?) { 0040 self.status = status 0041 self.version = version 0042 self.headers = headers 0043 self.cookies = cookies 0044 self.body = body 0045 self.upgrade = upgrade 0046 } 0047 } 0048 0049 extension Response { 0050 public init
ResponseSerializer.swift:48 switch response.body {(status: Status = .OK, headers: Headers = [:], cookies: Cookies = [], body: Body, upgrade: Upgrade? = nil) { 0051 self.init( 0052 status: status, 0053 version: (major: 1, minor: 1), 0054 headers: headers, 0055 cookies: cookies, 0056 body: body, 0057 upgrade: upgrade 0058 ) 0059 0060 if let buffer = body.buffer { 0061 contentLength = buffer.count 0062 } else { 0063 transferEncoding = "chunked" 0064 } 0065 } 0066 0067 public init(status: Status = .OK, headers: Headers = [:], cookies: Cookies = [], body: Data = nil, upgrade: Upgrade? = nil) { 0068 self.init( 0069 status: status, 0070 headers: headers, 0071 cookies: cookies, 0072 body: .Buffer(body), 0073 upgrade: upgrade 0074 ) 0075 } 0076 0077 public init(status: Status = .OK, headers: Headers = [:], cookies: Cookies = [], body: DataConvertible, upgrade: Upgrade? = nil) { 0078 self.init( 0079 status: status, 0080 headers: headers, 0081 cookies: cookies, 0082 body: body.data, 0083 upgrade: upgrade 0084 ) 0085 } 0086 0087 public init(status: Status = .OK, headers: Headers = [:], cookies: Cookies = [], body: StreamType, upgrade: Upgrade? = nil) { 0088 self.init( 0089 status: status, 0090 headers: headers, 0091 cookies: cookies, 0092 body: .Stream(body), 0093 upgrade: upgrade 0094 ) 0095 } 0096 0097 public var statusCode
Response.swift:39 init(status: Status, version: Version, headers: Headers, cookies: Cookies, body: Body, upgrade: Upgrade?) {Response.swift:67 public init(status: Status = .OK, headers: Headers = [:], cookies: Cookies = [], body: Data = nil, upgrade: Upgrade? = nil) {Response.swift:77 public init(status: Status = .OK, headers: Headers = [:], cookies: Cookies = [], body: DataConvertible, upgrade: Upgrade? = nil) {Response.swift:87 public init(status: Status = .OK, headers: Headers = [:], cookies: Cookies = [], body: StreamType, upgrade: Upgrade? = nil) {: Int { 0098 return status.statusCode 0099 } 0100 0101 public var reasonPhrase
Response.swift:108 return "HTTP/1.1 " + statusCode.description + " " + reasonPhrase + "\n": String { 0102 return status.reasonPhrase 0103 } 0104 } 0105 0106 extension Response: CustomStringConvertible { 0107 public var statusLineDescription
Response.swift:108 return "HTTP/1.1 " + statusCode.description + " " + reasonPhrase + "\n": String { 0108 return "HTTP/1.1 " + statusCode.description + " " + reasonPhrase + "\n" 0109 } 0110 0111 public var cookiesDescription
Response.swift:122 return statusLineDescription +: String { 0112 var string = "" 0113 0114 for cookie in cookies { 0115 string += "Set-Cookie: \(cookie.description)\n" 0116 } 0117 0118 return string 0119 } 0120 0121 public var description
Response.swift:124 cookiesDescription + "\n" +: String { 0122 return statusLineDescription + 0123 headerDescription + 0124 cookiesDescription + "\n" + 0125 bodyDescription 0126 } 0127 } 0128 0129 extension Response: CustomDebugStringConvertible { 0130 public var debugDescription: String { 0131 return description + "\n\n" + storageDescription 0132 } 0133 } 0134 0135 extension Response: Hashable { 0136 public var hashValue
Response.swift:131 return description + "\n\n" + storageDescriptionResponse.swift:137 return description.hashValue: Int { 0137 return description.hashValue 0138 } 0139 } 0140 0141 public func ==(lhs: Response, rhs: Response) -> Bool { 0142 return lhs.hashValue == rhs.hashValue 0143 } 0144
Response.swift:142 return lhs.hashValue == rhs.hashValueResponse.swift:142 return lhs.hashValue == rhs.hashValue