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.impl;
29
30 import java.util.concurrent.atomic.AtomicLong;
31
32 import org.apache.hc.core5.http.HttpConnectionMetrics;
33 import org.apache.hc.core5.http.io.HttpTransportMetrics;
34
35
36
37
38
39
40 public final class BasicHttpConnectionMetrics implements HttpConnectionMetrics {
41
42 private final HttpTransportMetrics inTransportMetric;
43 private final HttpTransportMetrics outTransportMetric;
44 private final AtomicLong requestCount;
45 private final AtomicLong responseCount;
46
47 public BasicHttpConnectionMetrics(
48 final HttpTransportMetrics inTransportMetric,
49 final HttpTransportMetrics outTransportMetric) {
50 super();
51 this.inTransportMetric = inTransportMetric;
52 this.outTransportMetric = outTransportMetric;
53 this.requestCount = new AtomicLong(0);
54 this.responseCount = new AtomicLong(0);
55 }
56
57 @Override
58 public long getReceivedBytesCount() {
59 if (this.inTransportMetric != null) {
60 return this.inTransportMetric.getBytesTransferred();
61 }
62 return -1;
63 }
64
65 @Override
66 public long getSentBytesCount() {
67 if (this.outTransportMetric != null) {
68 return this.outTransportMetric.getBytesTransferred();
69 }
70 return -1;
71 }
72
73 @Override
74 public long getRequestCount() {
75 return this.requestCount.get();
76 }
77
78 public void incrementRequestCount() {
79 this.requestCount.incrementAndGet();
80 }
81
82 @Override
83 public long getResponseCount() {
84 return this.responseCount.get();
85 }
86
87 public void incrementResponseCount() {
88 this.responseCount.incrementAndGet();
89 }
90
91 }