* NOTE: the caller is responsible for adding tracing & metrics.
*/
private ServerStreamingCallable createReadRowsBaseCallable(
- ServerStreamingCallSettings readRowsSettings, RowAdapter rowAdapter) {
-
+ ServerStreamingCallSettings readRowsSettings,
+ RowAdapter rowAdapter,
+ StreamResumptionStrategy resumptionStrategy) {
ServerStreamingCallable base =
GrpcRawCallableFactory.createServerStreamingCallable(
GrpcCallSettings.newBuilder()
@@ -625,7 +657,7 @@ private ServerStreamingCallable createReadRo
// ReadRowsRequest -> ReadRowsResponse callable).
ServerStreamingCallSettings innerSettings =
ServerStreamingCallSettings.newBuilder()
- .setResumptionStrategy(new ReadRowsResumptionStrategy<>(rowAdapter))
+ .setResumptionStrategy(resumptionStrategy)
.setRetryableCodes(readRowsSettings.getRetryableCodes())
.setRetrySettings(readRowsSettings.getRetrySettings())
.setIdleTimeout(readRowsSettings.getIdleTimeout())
@@ -1264,6 +1296,21 @@ private UnaryCallable createUnar
UnaryCallSettings callSettings,
Function requestTransformer,
Function responseTranformer) {
+ if (EnhancedBigtableStubSettings.SKIP_TRAILERS) {
+ return createUnaryCallableNew(
+ methodDescriptor, headerParamsFn, callSettings, requestTransformer, responseTranformer);
+ } else {
+ return createUnaryCallableOld(
+ methodDescriptor, headerParamsFn, callSettings, requestTransformer, responseTranformer);
+ }
+ }
+
+ private UnaryCallable createUnaryCallableOld(
+ MethodDescriptor methodDescriptor,
+ RequestParamsExtractor headerParamsFn,
+ UnaryCallSettings callSettings,
+ Function requestTransformer,
+ Function responseTranformer) {
UnaryCallable base =
GrpcRawCallableFactory.createUnaryCallable(
@@ -1300,6 +1347,50 @@ public ApiFuture futureCall(ReqT reqT, ApiCallContext apiCallContext) {
return traced.withDefaultCallContext(clientContext.getDefaultCallContext());
}
+ private UnaryCallable createUnaryCallableNew(
+ MethodDescriptor methodDescriptor,
+ RequestParamsExtractor headerParamsFn,
+ UnaryCallSettings callSettings,
+ Function requestTransformer,
+ Function