15
15
import NIO
16
16
import NIOHTTP1
17
17
18
- public class HandlingHTTPResponseDelegate < T> : HTTPClientResponseDelegate {
19
- struct EmptyEndHandlerError : Error { }
20
-
21
- public typealias Result = T
22
-
23
- var handleHead : ( ( HTTPResponseHead ) -> Void ) ?
24
- var handleBody : ( ( ByteBuffer ) -> Void ) ?
25
- var handleError : ( ( Error ) -> Void ) ?
26
- var handleEnd : ( ( ) throws -> T ) ?
27
-
28
- public func didReceiveHead( task: HTTPClient . Task < T > , _ head: HTTPResponseHead ) -> EventLoopFuture < Void > {
29
- if let handler = handleHead {
30
- handler ( head)
31
- }
32
- return task. eventLoop. makeSucceededFuture ( ( ) )
33
- }
34
-
35
- public func didReceivePart( task: HTTPClient . Task < T > , _ buffer: ByteBuffer ) -> EventLoopFuture < Void > {
36
- if let handler = handleBody {
37
- handler ( buffer)
38
- }
39
- return task. eventLoop. makeSucceededFuture ( ( ) )
40
- }
41
-
42
- public func didReceiveError( task: HTTPClient . Task < T > , _ error: Error ) {
43
- if let handler = handleError {
44
- handler ( error)
45
- }
46
- }
47
-
48
- public func didFinishRequest( task: HTTPClient . Task < T > ) throws -> T {
49
- if let handler = handleEnd {
50
- return try handler ( )
51
- }
52
- throw EmptyEndHandlerError ( )
53
- }
54
- }
55
-
56
- final class CopyingDelegate : HTTPClientResponseDelegate {
18
+ public final class HTTPClientCopyingDelegate : HTTPClientResponseDelegate {
57
19
public typealias Response = Void
58
20
59
21
let chunkHandler : ( ByteBuffer ) -> EventLoopFuture < Void >
@@ -62,11 +24,11 @@ final class CopyingDelegate: HTTPClientResponseDelegate {
62
24
self . chunkHandler = chunkHandler
63
25
}
64
26
65
- func didReceivePart( task: HTTPClient . Task < Void > , _ buffer: ByteBuffer ) -> EventLoopFuture < Void > {
27
+ public func didReceivePart( task: HTTPClient . Task < Void > , _ buffer: ByteBuffer ) -> EventLoopFuture < Void > {
66
28
return self . chunkHandler ( buffer)
67
29
}
68
30
69
- func didFinishRequest( task: HTTPClient . Task < Void > ) throws {
31
+ public func didFinishRequest( task: HTTPClient . Task < Void > ) throws {
70
32
return ( )
71
33
}
72
34
}
0 commit comments