Skip to content

Commit 4b99975

Browse files
authored
Rename succeedRequest to receiveResponseEnd (#877)
1 parent 5fd3d5c commit 4b99975

12 files changed

+39
-31
lines changed

Sources/AsyncHTTPClient/AsyncAwait/Transaction+StateMachine.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ extension Transaction {
468468
case none
469469
}
470470

471-
mutating func succeedRequest(_ newChunks: CircularBuffer<ByteBuffer>?) -> ReceiveResponseEndAction {
471+
mutating func receiveResponseEnd(_ newChunks: CircularBuffer<ByteBuffer>?) -> ReceiveResponseEndAction {
472472
switch self.state {
473473
case .initialized,
474474
.queued,
@@ -479,8 +479,14 @@ extension Transaction {
479479
)
480480

481481
case .executing(let context, let requestState, .streamingBody(let source)):
482-
self.state = .executing(context, requestState, .finished)
482+
switch requestState {
483+
case .finished:
484+
self.state = .finished(error: nil)
485+
case .paused, .producing, .requestHeadSent:
486+
self.state = .executing(context, requestState, .finished)
487+
}
483488
return .finishResponseStream(source, finalBody: newChunks)
489+
484490
case .finished:
485491
// the request failed or was cancelled before, we can ignore all events
486492
return .none

Sources/AsyncHTTPClient/AsyncAwait/Transaction.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,11 @@ extension Transaction: HTTPExecutableRequest {
286286
}
287287
}
288288

289-
func succeedRequest(_ buffer: CircularBuffer<ByteBuffer>?) {
290-
let succeedAction = self.state.withLockedValue { state in
291-
state.succeedRequest(buffer)
289+
func receiveResponseEnd(_ buffer: CircularBuffer<ByteBuffer>?, trailers: HTTPHeaders?) {
290+
let receiveResponseEndAction = self.state.withLockedValue { state in
291+
state.receiveResponseEnd(buffer)
292292
}
293-
switch succeedAction {
293+
switch receiveResponseEndAction {
294294
case .finishResponseStream(let source, let finalResponse):
295295
if let finalResponse = finalResponse {
296296
_ = source.yield(contentsOf: finalResponse)

Sources/AsyncHTTPClient/ConnectionPool/HTTP1/HTTP1ClientChannelHandler.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ final class HTTP1ClientChannelHandler: ChannelDuplexHandler {
319319
switch finalAction {
320320
case .close:
321321
context.close(promise: nil)
322-
oldRequest.succeedRequest(buffer)
322+
oldRequest.receiveResponseEnd(buffer, trailers: nil)
323323
case .sendRequestEnd(let writePromise, let shouldClose):
324324
let writePromise = writePromise ?? context.eventLoop.makePromise(of: Void.self)
325325
// We need to defer succeeding the old request to avoid ordering issues
@@ -336,7 +336,7 @@ final class HTTP1ClientChannelHandler: ChannelDuplexHandler {
336336
self.onConnectionIdle()
337337
}
338338

339-
oldRequest.succeedRequest(buffer)
339+
oldRequest.receiveResponseEnd(buffer, trailers: nil)
340340
case .failure(let error):
341341
context.close(promise: nil)
342342
oldRequest.fail(error)
@@ -346,7 +346,7 @@ final class HTTP1ClientChannelHandler: ChannelDuplexHandler {
346346
context.writeAndFlush(self.wrapOutboundOut(.end(nil)), promise: writePromise)
347347
case .informConnectionIsIdle:
348348
self.onConnectionIdle()
349-
oldRequest.succeedRequest(buffer)
349+
oldRequest.receiveResponseEnd(buffer, trailers: nil)
350350
}
351351

352352
case .failRequest(let error, let finalAction):

Sources/AsyncHTTPClient/ConnectionPool/HTTP2/HTTP2ClientRequestHandler.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ final class HTTP2ClientRequestHandler: ChannelDuplexHandler {
250250
case .succeedRequest(let finalAction, let finalParts):
251251
// We can force unwrap the request here, as we have just validated in the state machine,
252252
// that the request object is still present.
253-
self.request!.succeedRequest(finalParts)
253+
self.request!.receiveResponseEnd(finalParts, trailers: nil)
254254
self.request = nil
255255
self.runTimeoutAction(.clearIdleReadTimeoutTimer, context: context)
256256
self.runTimeoutAction(.clearIdleWriteTimeoutTimer, context: context)

Sources/AsyncHTTPClient/ConnectionPool/HTTPExecutableRequest.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,10 +260,12 @@ protocol HTTPExecutableRequest: AnyObject, Sendable {
260260
/// to ask for more data.
261261
func receiveResponseBodyParts(_ buffer: CircularBuffer<ByteBuffer>)
262262

263-
/// Succeeds the executing request. The executor will not call any further methods on the request after this method.
263+
/// Finishes the server response.
264264
///
265-
/// - Parameter buffer: The remaining response body parts, that were received before the request end
266-
func succeedRequest(_ buffer: CircularBuffer<ByteBuffer>?)
265+
/// - Parameters:
266+
/// - buffer: The remaining response body parts, that were received before the response end
267+
/// - trailers: The response trailers if any where received. Nil means no trailers were received.
268+
func receiveResponseEnd(_ buffer: CircularBuffer<ByteBuffer>?, trailers: HTTPHeaders?)
267269

268270
/// Fails the executing request, with an error.
269271
func fail(_ error: Error)

Sources/AsyncHTTPClient/RequestBag+StateMachine.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ extension RequestBag.StateMachine {
401401
case none
402402
}
403403

404-
mutating func succeedRequest(_ newChunks: CircularBuffer<ByteBuffer>?) -> ReceiveResponseEndAction {
404+
mutating func receiveResponseEnd(_ newChunks: CircularBuffer<ByteBuffer>?) -> ReceiveResponseEndAction {
405405
switch self.state {
406406
case .initialized, .queued, .deadlineExceededWhileQueued:
407407
preconditionFailure("How can we receive a response body part, if the request hasn't started yet.")

Sources/AsyncHTTPClient/RequestBag.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,8 @@ final class RequestBag<Delegate: HTTPClientResponseDelegate & Sendable>: Sendabl
306306
}
307307
}
308308

309-
private func succeedRequest0(_ buffer: CircularBuffer<ByteBuffer>?) {
310-
let action = self.loopBoundState.value.state.succeedRequest(buffer)
309+
private func receiveResponseEnd0(_ buffer: CircularBuffer<ByteBuffer>?) {
310+
let action = self.loopBoundState.value.state.receiveResponseEnd(buffer)
311311

312312
switch action {
313313
case .none:
@@ -538,12 +538,12 @@ extension RequestBag: HTTPExecutableRequest {
538538
}
539539
}
540540

541-
func succeedRequest(_ buffer: CircularBuffer<ByteBuffer>?) {
541+
func receiveResponseEnd(_ buffer: CircularBuffer<ByteBuffer>?, trailers: HTTPHeaders?) {
542542
if self.task.eventLoop.inEventLoop {
543-
self.succeedRequest0(buffer)
543+
self.receiveResponseEnd0(buffer)
544544
} else {
545545
self.task.eventLoop.execute {
546-
self.succeedRequest0(buffer)
546+
self.receiveResponseEnd0(buffer)
547547
}
548548
}
549549
}

Tests/AsyncHTTPClientTests/HTTPConnectionPool+RequestQueueTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ final private class MockScheduledRequest: HTTPSchedulableRequest {
134134
preconditionFailure("Unimplemented")
135135
}
136136

137-
func succeedRequest(_: CircularBuffer<ByteBuffer>?) {
137+
func receiveResponseEnd(_ buffer: CircularBuffer<ByteBuffer>?, trailers: HTTPHeaders?) {
138138
preconditionFailure("Unimplemented")
139139
}
140140
}

Tests/AsyncHTTPClientTests/Mocks/MockConnectionPool.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,7 @@ final class MockHTTPScheduableRequest: HTTPSchedulableRequest {
757757
preconditionFailure("Unimplemented")
758758
}
759759

760-
func succeedRequest(_: CircularBuffer<ByteBuffer>?) {
760+
func receiveResponseEnd(_ buffer: CircularBuffer<ByteBuffer>?, trailers: HTTPHeaders?) {
761761
preconditionFailure("Unimplemented")
762762
}
763763
}

Tests/AsyncHTTPClientTests/Mocks/MockHTTPExecutableRequest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ final class MockHTTPExecutableRequest: HTTPExecutableRequest {
157157
receiveResponseBodyPartsCallback(buffer)
158158
}
159159

160-
func succeedRequest(_ buffer: CircularBuffer<NIOCore.ByteBuffer>?) {
160+
func receiveResponseEnd(_ buffer: CircularBuffer<ByteBuffer>?, trailers: HTTPHeaders?) {
161161
self.events.append(.succeedRequest(buffer))
162162
guard let succeedRequestCallback = succeedRequestCallback else {
163163
return self.calledUnimplementedMethod(#function)

0 commit comments

Comments
 (0)