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);
}