1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.net;
18
19 import java.net.Socket;
20 import java.net.SocketException;
21
22 import org.apache.logging.log4j.core.Core;
23 import org.apache.logging.log4j.core.config.plugins.Plugin;
24 import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
25 import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
26 import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
27 import org.apache.logging.log4j.core.util.Builder;
28
29
30
31
32
33
34
35 @Plugin(name = "SocketPerformancePreferences", category = Core.CATEGORY_NAME, printObject = true)
36 public class SocketPerformancePreferences implements Builder<SocketPerformancePreferences>, Cloneable {
37
38 @PluginBuilderFactory
39 public static SocketPerformancePreferences newBuilder() {
40 return new SocketPerformancePreferences();
41 }
42
43 @PluginBuilderAttribute
44 @Required
45 private int bandwidth;
46
47 @PluginBuilderAttribute
48 @Required
49 private int connectionTime;
50
51 @PluginBuilderAttribute
52 @Required
53 private int latency;
54
55 public void apply(final Socket socket) {
56 socket.setPerformancePreferences(connectionTime, latency, bandwidth);
57 }
58
59 @Override
60 public SocketPerformancePreferences build() {
61 try {
62 return (SocketPerformancePreferences) clone();
63 } catch (final CloneNotSupportedException e) {
64 throw new IllegalStateException(e);
65 }
66 }
67
68 public int getBandwidth() {
69 return bandwidth;
70 }
71
72 public int getConnectionTime() {
73 return connectionTime;
74 }
75
76 public int getLatency() {
77 return latency;
78 }
79
80 public void setBandwidth(final int bandwidth) {
81 this.bandwidth = bandwidth;
82 }
83
84 public void setConnectionTime(final int connectionTime) {
85 this.connectionTime = connectionTime;
86 }
87
88 public void setLatency(final int latency) {
89 this.latency = latency;
90 }
91
92 @Override
93 public String toString() {
94 return "SocketPerformancePreferences [bandwidth=" + bandwidth + ", connectionTime=" + connectionTime
95 + ", latency=" + latency + "]";
96 }
97
98 }