Skip to content

Commit 388012b

Browse files
committed
init
1 parent d635179 commit 388012b

2 files changed

Lines changed: 51 additions & 1 deletion

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: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,27 @@ public CompletableFuture<HttpStreamBase> acquireStream(HttpRequestBase request,
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)