@@ -122,25 +122,25 @@ public struct HTTPResponse: Equatable {
122122public protocol HTTPResponseDelegate : class {
123123 associatedtype Response
124124
125- func didTransmitRequestBody( )
125+ func didTransmitRequestBody( task : HTTPTask < Response > )
126126
127- func didReceiveHead( _ head: HTTPResponseHead )
127+ func didReceiveHead( task : HTTPTask < Response > , _ head: HTTPResponseHead )
128128
129- func didReceivePart( _ buffer: ByteBuffer )
129+ func didReceivePart( task : HTTPTask < Response > , _ buffer: ByteBuffer )
130130
131- func didReceiveError( _ error: Error )
131+ func didReceiveError( task : HTTPTask < Response > , _ error: Error )
132132
133- func didFinishRequest( ) throws -> Response
133+ func didFinishRequest( task : HTTPTask < Response > ) throws -> Response
134134}
135135
136136extension HTTPResponseDelegate {
137- func didTransmitRequestBody( ) { }
137+ func didTransmitRequestBody( task : HTTPTask < Response > ) { }
138138
139- func didReceiveHead( _: HTTPResponseHead ) { }
139+ func didReceiveHead( task : HTTPTask < Response > , _: HTTPResponseHead ) { }
140140
141- func didReceivePart( _: ByteBuffer ) { }
141+ func didReceivePart( task : HTTPTask < Response > , _: ByteBuffer ) { }
142142
143- func didReceiveError( _: Error ) { }
143+ func didReceiveError( task : HTTPTask < Response > , _: Error ) { }
144144}
145145
146146class HTTPResponseAccumulator : HTTPResponseDelegate {
@@ -161,9 +161,9 @@ class HTTPResponseAccumulator: HTTPResponseDelegate {
161161 self . request = request
162162 }
163163
164- func didTransmitRequestBody( ) { }
164+ func didTransmitRequestBody( task : HTTPTask < Response > ) { }
165165
166- func didReceiveHead( _ head: HTTPResponseHead ) {
166+ func didReceiveHead( task : HTTPTask < Response > , _ head: HTTPResponseHead ) {
167167 switch self . state {
168168 case . idle:
169169 self . state = . head( head)
@@ -178,7 +178,7 @@ class HTTPResponseAccumulator: HTTPResponseDelegate {
178178 }
179179 }
180180
181- func didReceivePart( _ part: ByteBuffer ) {
181+ func didReceivePart( task : HTTPTask < Response > , _ part: ByteBuffer ) {
182182 switch self . state {
183183 case . idle:
184184 preconditionFailure ( " no head received before body " )
@@ -195,11 +195,11 @@ class HTTPResponseAccumulator: HTTPResponseDelegate {
195195 }
196196 }
197197
198- func didReceiveError( _ error: Error ) {
198+ func didReceiveError( task : HTTPTask < Response > , _ error: Error ) {
199199 self . state = . error( error)
200200 }
201201
202- func didFinishRequest( ) throws -> HTTPResponse {
202+ func didFinishRequest( task : HTTPTask < Response > ) throws -> HTTPResponse {
203203 switch self . state {
204204 case . idle:
205205 preconditionFailure ( " no head received before end " )
@@ -279,13 +279,15 @@ class HTTPTaskHandler<T: HTTPResponseDelegate>: ChannelInboundHandler, ChannelOu
279279 case end
280280 }
281281
282+ let task : HTTPTask < T . Response >
282283 let delegate : T
283284 let promise : EventLoopPromise < T . Response >
284285 let redirectHandler : RedirectHandler < T . Response > ?
285286
286287 var state : State = . idle
287288
288- init ( delegate: T , promise: EventLoopPromise < T . Response > , redirectHandler: RedirectHandler < T . Response > ? ) {
289+ init ( task: HTTPTask < T . Response > , delegate: T , promise: EventLoopPromise < T . Response > , redirectHandler: RedirectHandler < T . Response > ? ) {
290+ self . task = task
289291 self . delegate = delegate
290292 self . promise = promise
291293 self . redirectHandler = redirectHandler
@@ -336,7 +338,7 @@ class HTTPTaskHandler<T: HTTPResponseDelegate>: ChannelInboundHandler, ChannelOu
336338 context. flush ( )
337339
338340 self . state = . sent
339- self . delegate. didTransmitRequestBody ( )
341+ self . delegate. didTransmitRequestBody ( task : self . task )
340342 }
341343
342344 func channelRead( context: ChannelHandlerContext , data: NIOAny ) {
@@ -347,15 +349,15 @@ class HTTPTaskHandler<T: HTTPResponseDelegate>: ChannelInboundHandler, ChannelOu
347349 self . state = . redirected( head, redirectURL)
348350 } else {
349351 self . state = . head
350- self . delegate. didReceiveHead ( head)
352+ self . delegate. didReceiveHead ( task : self . task , head)
351353 }
352354 case . body( let body) :
353355 switch self . state {
354356 case . redirected:
355357 break
356358 default :
357359 self . state = . body
358- self . delegate. didReceivePart ( body)
360+ self . delegate. didReceivePart ( task : self . task , body)
359361 }
360362 case . end:
361363 switch self . state {
@@ -365,7 +367,7 @@ class HTTPTaskHandler<T: HTTPResponseDelegate>: ChannelInboundHandler, ChannelOu
365367 default :
366368 self . state = . end
367369 do {
368- self . promise. succeed ( try self . delegate. didFinishRequest ( ) )
370+ self . promise. succeed ( try self . delegate. didFinishRequest ( task : self . task ) )
369371 } catch {
370372 self . promise. fail ( error)
371373 }
@@ -377,12 +379,12 @@ class HTTPTaskHandler<T: HTTPResponseDelegate>: ChannelInboundHandler, ChannelOu
377379 if ( event as? IdleStateHandler . IdleStateEvent) == . read {
378380 self . state = . end
379381 let error = HTTPClientErrors . ReadTimeoutError ( )
380- delegate. didReceiveError ( error)
382+ delegate. didReceiveError ( task : self . task , error)
381383 promise. fail ( error)
382384 } else if ( event as? CancelEvent ) != nil {
383385 self . state = . end
384386 let error = HTTPClientErrors . CancelledError ( )
385- delegate. didReceiveError ( error)
387+ delegate. didReceiveError ( task : self . task , error)
386388 promise. fail ( error)
387389 } else {
388390 context. fireUserInboundEventTriggered ( event)
@@ -396,7 +398,7 @@ class HTTPTaskHandler<T: HTTPResponseDelegate>: ChannelInboundHandler, ChannelOu
396398 default :
397399 self . state = . end
398400 let error = HTTPClientErrors . RemoteConnectionClosedError ( )
399- delegate. didReceiveError ( error)
401+ delegate. didReceiveError ( task : self . task , error)
400402 promise. fail ( error)
401403 }
402404 }
@@ -411,12 +413,12 @@ class HTTPTaskHandler<T: HTTPResponseDelegate>: ChannelInboundHandler, ChannelOu
411413 break
412414 default :
413415 self . state = . end
414- self . delegate. didReceiveError ( error)
416+ self . delegate. didReceiveError ( task : self . task , error)
415417 self . promise. fail ( error)
416418 }
417419 default :
418420 self . state = . end
419- self . delegate. didReceiveError ( error)
421+ self . delegate. didReceiveError ( task : self . task , error)
420422 self . promise. fail ( error)
421423 }
422424 }
0 commit comments