static void beginPipelineExecution()

in sdk/core/azure-core-http/src/main/java/com/azure/android/core/http/HttpPipelinePolicyChainImpl.java [44:87]


    static void beginPipelineExecution(HttpPipeline httpPipeline,
                                       HttpRequest httpRequest,
                                       RequestContext requestContext,
                                       CancellationToken cancellationToken,
                                       HttpCallback pipelineSendCallback) {
        Util.requireNonNull(httpPipeline, "'httpPipeline' is required.");
        Util.requireNonNull(httpRequest, "'httpRequest' is required.");
        Util.requireNonNull(requestContext, "'requestContext' is required.");
        Util.requireNonNull(cancellationToken, "'cancellationToken' is required.");
        Util.requireNonNull(pipelineSendCallback, "'pipelineSendCallback' is required.");

        final HttpCallDispatcher.HttpCallFunction httpCallFunction = (request, rootHttpCallback) -> {
            final HttpPipelinePolicyChainImpl rootChain = new HttpPipelinePolicyChainImpl(-1,
                httpPipeline,
                request,
                rootHttpCallback,
                requestContext,
                cancellationToken,
                null,
                new NextPolicyCallback() {
                    @Override
                    public PolicyCompleter.CompletionState onSuccess(HttpResponse response, PolicyCompleter completer) {
                        rootHttpCallback.onSuccess(response);
                        return PolicyCompleter.CompletionState.INSTANCE;

                    }

                    @Override
                    public PolicyCompleter.CompletionState onError(Throwable error, PolicyCompleter completer) {
                        rootHttpCallback.onError(error);
                        return PolicyCompleter.CompletionState.INSTANCE;
                    }
                });

            rootChain.processNextPolicyIntern(rootChain.httpRequest,
                rootChain.context,
                rootChain.prevPolicyCallback);
        };

        httpPipeline.httpCallDispatcher.enqueue(httpCallFunction,
            httpRequest,
            cancellationToken,
            pipelineSendCallback);
    }