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
28 package org.apache.hc.core5.http.nio.command;
29
30 import org.apache.hc.core5.annotation.Internal;
31 import org.apache.hc.core5.concurrent.CancellableDependency;
32 import org.apache.hc.core5.http.nio.AsyncClientExchangeHandler;
33 import org.apache.hc.core5.http.nio.AsyncPushConsumer;
34 import org.apache.hc.core5.http.nio.HandlerFactory;
35 import org.apache.hc.core5.http.protocol.HttpContext;
36 import org.apache.hc.core5.util.Args;
37
38
39
40
41
42
43 @Internal
44 public final class RequestExecutionCommand extends ExecutableCommand {
45
46 private final AsyncClientExchangeHandler exchangeHandler;
47 private final HandlerFactory<AsyncPushConsumer> pushHandlerFactory;
48 private final CancellableDependency cancellableDependency;
49 private final HttpContext context;
50
51 public RequestExecutionCommand(
52 final AsyncClientExchangeHandler exchangeHandler,
53 final HandlerFactory<AsyncPushConsumer> pushHandlerFactory,
54 final CancellableDependency cancellableDependency,
55 final HttpContext context) {
56 this.exchangeHandler = Args.notNull(exchangeHandler, "Handler");
57 this.pushHandlerFactory = pushHandlerFactory;
58 this.cancellableDependency = cancellableDependency;
59 this.context = context;
60 }
61
62 public RequestExecutionCommand(
63 final AsyncClientExchangeHandler exchangeHandler,
64 final HandlerFactory<AsyncPushConsumer> pushHandlerFactory,
65 final HttpContext context) {
66 this(exchangeHandler, pushHandlerFactory, null, context);
67 }
68
69 public RequestExecutionCommand(
70 final AsyncClientExchangeHandler exchangeHandler,
71 final HttpContext context) {
72 this(exchangeHandler, null, null, context);
73 }
74
75 public AsyncClientExchangeHandler getExchangeHandler() {
76 return exchangeHandler;
77 }
78
79 public HandlerFactory<AsyncPushConsumer> getPushHandlerFactory() {
80 return pushHandlerFactory;
81 }
82
83 @Override
84 public CancellableDependency getCancellableDependency() {
85 return cancellableDependency;
86 }
87
88 public HttpContext getContext() {
89 return context;
90 }
91
92 @Override
93 public void failed(final Exception ex) {
94 try {
95 exchangeHandler.failed(ex);
96 } finally {
97 exchangeHandler.releaseResources();
98 }
99 }
100
101 @Override
102 public boolean cancel() {
103 exchangeHandler.cancel();
104 return true;
105 }
106
107 }