Class ScatterGatherRequestHandlerImpl<H,​P extends ResourcePath<K>,​K,​R,​CHC,​BHS extends BasicRequest,​HR,​HRS extends io.netty.handler.codec.http.HttpResponseStatus,​SCATTER_GATHER_HELPER extends ScatterGatherHelper<H,​P,​K,​R,​BHS,​HR,​HRS>>

    • Method Detail

      • setMetric

        public static void setMetric​(Metrics metric,
                                     @Nonnull
                                     MetricNames metricName,
                                     @Nonnull
                                     java.util.function.Supplier<TimeValue> supplier)
      • timeout

        protected abstract java.lang.Runnable timeout​(CHC ctx,
                                                      java.lang.Runnable task)
      • timeout

        protected java.lang.Runnable timeout​(CHC ctx,
                                             java.lang.String msg,
                                             AsyncPromise<java.lang.Void> timeoutFuture)
      • timeout

        protected <T> java.lang.Runnable timeout​(CHC ctx,
                                                 java.lang.String msg,
                                                 AsyncPromise<T> timeoutFuture,
                                                 T value)
      • executor

        protected abstract java.util.concurrent.Executor executor​(CHC ctx)
      • handler

        @Nonnull
        protected AsyncFuture<HR> handler​(@Nonnull
                                          CHC ctx,
                                          @Nonnull
                                          BHS request)
                                   throws java.lang.Exception
        Throws:
        java.lang.Exception
      • unwrapCompletion

        protected static java.lang.Throwable unwrapCompletion​(java.lang.Throwable ex)
      • statusOf

        protected abstract HRS statusOf​(int code)
      • multiStatus

        protected abstract HRS multiStatus()
      • badRequest

        protected abstract HRS badRequest()
      • gatewayTimeout

        protected abstract HRS gatewayTimeout()
      • serviceUnavailable

        protected abstract HRS serviceUnavailable()
      • internalServerError

        protected abstract HRS internalServerError()
      • isSuccessStatus

        protected abstract boolean isSuccessStatus​(HRS status)
      • isRequestRetriable

        protected abstract boolean isRequestRetriable​(P path,
                                                      R role,
                                                      HRS status)
      • getReasonPhrase

        protected abstract java.lang.String getReasonPhrase​(HRS status)
      • prepareRequest

        @Nonnull
        protected BHS prepareRequest​(@Nonnull
                                     BHS value)
      • retainRequest

        @Nonnull
        protected BHS retainRequest​(@Nonnull
                                    BHS value)
      • releaseRequest

        protected boolean releaseRequest​(BHS value)
      • releaseResponse

        protected boolean releaseResponse​(HR value)
      • isLastAttempt

        protected boolean isLastAttempt​(HRS status)
      • getResponseCode

        protected abstract int getResponseCode​(HR response)
      • getResponseReadable

        protected abstract int getResponseReadable​(HR response)
      • hasErrorInStorageNodeResponse

        protected abstract boolean hasErrorInStorageNodeResponse​(HR response)
      • getResponseHeaders

        protected abstract Headers getResponseHeaders​(HR response)
      • setKeepAlive

        protected abstract void setKeepAlive​(HR response,
                                             boolean keepAlive)
      • buildResponse

        @Nonnull
        protected abstract HR buildResponse​(@Nonnull
                                            BHS request,
                                            Metrics metrics,
                                            @Nonnull
                                            java.util.List<HR> gatheredResponses)
      • appendErrorsForOfflinePartitions

        protected void appendErrorsForOfflinePartitions​(@Nonnull
                                                        BHS request,
                                                        @Nonnull
                                                        Scatter<H,​P,​K> scatter,
                                                        @Nonnull
                                                        java.util.List<AsyncFuture<java.util.List<HR>>> responseFutures)
      • appendErrorForEveryKey

        protected java.util.concurrent.CompletionStage<?> appendErrorForEveryKey​(@Nonnull
                                                                                 BHS request,
                                                                                 @Nonnull
                                                                                 java.util.List<HR> responses,
                                                                                 @Nonnull
                                                                                 HRS status,
                                                                                 java.lang.String contentMessage,
                                                                                 java.lang.Throwable ex,
                                                                                 @Nonnull
                                                                                 ResourcePathParser<P,​K> pathParser,
                                                                                 @Nonnull
                                                                                 ScatterGatherRequest<H,​K> part,
                                                                                 @Nonnull
                                                                                 P basePath)
      • appendError

        protected void appendError​(@Nonnull
                                   BHS request,
                                   @Nonnull
                                   java.util.List<HR> responses,
                                   @Nonnull
                                   HRS status,
                                   java.lang.String contentMessage,
                                   java.lang.Throwable ex)
      • buildExceptionResponse

        @Nonnull
        protected HR buildExceptionResponse​(@Nonnull
                                            BHS request,
                                            @Nonnull
                                            java.lang.Throwable cause)
      • buildErrorResponse

        @Nonnull
        protected abstract HR buildErrorResponse​(@Nonnull
                                                 BHS request,
                                                 @Nonnull
                                                 HRS status,
                                                 java.lang.String contentMessage,
                                                 java.lang.Throwable ex)