Skip to content

Commit bc93124

Browse files
committed
init
1 parent d635179 commit bc93124

2 files changed

Lines changed: 52 additions & 2 deletions

File tree

src/main/java/software/amazon/awssdk/crt/http/Http1StreamManager.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,21 @@ public CompletableFuture<HttpStream> acquireStream(HttpRequest request,
4949
return this.acquireStream((HttpRequestBase) request, streamHandler);
5050
}
5151

52+
/**
53+
* Request an HTTP/1.1 HttpStream from StreamManager.
54+
*
55+
* @param request HttpRequest. The Request to make to the Server.
56+
* @param streamHandler HttpStreamBaseResponseHandler. The Stream Handler to be called from the Native EventLoop
57+
* @param useManualDataWrites A boolean variable to signal that body will be streamed using async writes.
58+
* @return A future for a HttpStream that will be completed when the stream is
59+
* acquired.
60+
* @throws CrtRuntimeException Exception happens from acquiring stream.
61+
*/
62+
public CompletableFuture<HttpStream> acquireStream(HttpRequest request,
63+
HttpStreamBaseResponseHandler streamHandler, boolean useManualDataWrites) {
64+
return this.acquireStream((HttpRequestBase) request, streamHandler, useManualDataWrites);
65+
}
66+
5267
/**
5368
* Request an HTTP/1.1 HttpStream from StreamManager.
5469
*
@@ -60,6 +75,21 @@ public CompletableFuture<HttpStream> acquireStream(HttpRequest request,
6075
*/
6176
public CompletableFuture<HttpStream> acquireStream(HttpRequestBase request,
6277
HttpStreamBaseResponseHandler streamHandler) {
78+
return this.acquireStream(request, streamHandler, false); // overloading to ensure backward-compatibility
79+
}
80+
81+
/**
82+
* Request an HTTP/1.1 HttpStream from StreamManager.
83+
*
84+
* @param request HttpRequestBase. The Request to make to the Server.
85+
* @param streamHandler HttpStreamBaseResponseHandler. The Stream Handler to be called from the Native EventLoop
86+
* @param useManualDataWrites A boolean variable to signal that body will be streamed using async writes.
87+
* @return A future for a HttpStream that will be completed when the stream is
88+
* acquired.
89+
* @throws CrtRuntimeException Exception happens from acquiring stream.
90+
*/
91+
public CompletableFuture<HttpStream> acquireStream(HttpRequestBase request,
92+
HttpStreamBaseResponseHandler streamHandler, boolean usingManualDataWrites) {
6393
CompletableFuture<HttpStream> completionFuture = new CompletableFuture<>();
6494
HttpClientConnectionManager connManager = this.connectionManager;
6595

src/main/java/software/amazon/awssdk/crt/http/HttpStreamManager.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,32 @@ private HttpStreamManager(HttpStreamManagerOptions options) {
5050
* acquired.
5151
*/
5252
public CompletableFuture<HttpStreamBase> acquireStream(HttpRequestBase request,
53-
HttpStreamBaseResponseHandler streamHandler) {
53+
HttpStreamBaseResponseHandler streamHandler, boolean useManualDataWrites) {
5454
if (this.h2StreamManager != null) {
5555
return this.h2StreamManager.acquireStream(request, streamHandler)
5656
.thenApply(stream -> (HttpStreamBase) stream);
5757
} else {
58-
return this.h1StreamManager.acquireStream(request, streamHandler)
58+
return this.h1StreamManager.acquireStream(request, streamHandler, false)
59+
.thenApply(stream -> (HttpStreamBase) stream);
60+
}
61+
}
62+
63+
/**
64+
* Request an HttpStream from StreamManager.
65+
*
66+
* @param request HttpRequestBase. The Request to make to the Server.
67+
* @param streamHandler HttpStreamBaseResponseHandler. The Stream Handler to be called from the Native EventLoop
68+
* @param useManualDataWrites A boolean variable to signal that body will be streamed using async writes.
69+
* @return A future for a HttpStreamBase that will be completed when the stream is
70+
* acquired.
71+
*/
72+
public CompletableFuture<HttpStreamBase> acquireStream(HttpRequestBase request,
73+
HttpStreamBaseResponseHandler streamHandler, boolean useManualDataWrites) {
74+
if (this.h2StreamManager != null) {
75+
return this.h2StreamManager.acquireStream(request, streamHandler)
76+
.thenApply(stream -> (HttpStreamBase) stream);
77+
} else {
78+
return this.h1StreamManager.acquireStream(request, streamHandler, useManualDataWrites)
5979
.thenApply(stream -> (HttpStreamBase) stream);
6080
}
6181
}

0 commit comments

Comments
 (0)