1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.hc.client5.http.async;
28
29 import java.io.IOException;
30
31 import org.apache.hc.client5.http.HttpRoute;
32 import org.apache.hc.client5.http.protocol.HttpClientContext;
33 import org.apache.hc.core5.annotation.Contract;
34 import org.apache.hc.core5.annotation.ThreadingBehavior;
35 import org.apache.hc.core5.concurrent.CancellableDependency;
36 import org.apache.hc.core5.http.HttpException;
37 import org.apache.hc.core5.http.HttpRequest;
38 import org.apache.hc.core5.http.nio.AsyncEntityProducer;
39 import org.apache.hc.core5.util.Args;
40
41
42
43
44
45
46 @Contract(threading = ThreadingBehavior.STATELESS)
47 public interface AsyncExecChain {
48
49
50
51
52
53
54 final class Scope {
55
56 public final String exchangeId;
57 public final HttpRoute route;
58 public final HttpRequest originalRequest;
59 public final CancellableDependency cancellableDependency;
60 public final HttpClientContext clientContext;
61 public final AsyncExecRuntime execRuntime;
62
63 public Scope(
64 final String exchangeId,
65 final HttpRoute route,
66 final HttpRequest originalRequest,
67 final CancellableDependency cancellableDependency,
68 final HttpClientContext clientContext,
69 final AsyncExecRuntime execRuntime) {
70 this.exchangeId = Args.notBlank(exchangeId, "Exchange id");
71 this.route = Args.notNull(route, "Route");
72 this.originalRequest = Args.notNull(originalRequest, "Original request");
73 this.cancellableDependency = Args.notNull(cancellableDependency, "Dependency");
74 this.clientContext = clientContext != null ? clientContext : HttpClientContext.create();
75 this.execRuntime = Args.notNull(execRuntime, "Exec runtime");
76 }
77
78 }
79
80
81
82
83
84
85
86
87
88
89 void proceed(
90 HttpRequest request,
91 AsyncEntityProducer entityProducer,
92 Scope scope,
93 AsyncExecCallback asyncExecCallback) throws HttpException, IOException;
94
95 }