AbstractTrafficShapingHandler Class — netty Architecture
Architecture documentation for the AbstractTrafficShapingHandler class in AbstractTrafficShapingHandler.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 8335ea87_158a_c21f_4d30_8f254caf2ded["AbstractTrafficShapingHandler"] b62614b8_ae82_8ab2_7882_d009f6a3229e["AbstractTrafficShapingHandler.java"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|defined in| b62614b8_ae82_8ab2_7882_d009f6a3229e 1753d837_2eda_6f03_7364_6930c60ade78["setTrafficCounter()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| 1753d837_2eda_6f03_7364_6930c60ade78 a6c71299_3e4b_5909_cf5f_5a781f8b7e7f["userDefinedWritabilityIndex()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| a6c71299_3e4b_5909_cf5f_5a781f8b7e7f af870a34_7c5c_ae27_b2e0_23725f0ebd3a["AbstractTrafficShapingHandler()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| af870a34_7c5c_ae27_b2e0_23725f0ebd3a 466da63d_b8a6_5d1f_8b96_5fb3f1720da5["configure()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| 466da63d_b8a6_5d1f_8b96_5fb3f1720da5 23141d75_1ed9_54df_0cbf_060bc5bd1bc2["getWriteLimit()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| 23141d75_1ed9_54df_0cbf_060bc5bd1bc2 ede81981_ecd2_f2d8_b2db_841b71dc6241["setWriteLimit()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| ede81981_ecd2_f2d8_b2db_841b71dc6241 c69eb07f_2854_3a3e_861d_c3d2fe327dea["getReadLimit()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| c69eb07f_2854_3a3e_861d_c3d2fe327dea 14120f0f_9174_cb16_848f_73c92c85119e["setReadLimit()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| 14120f0f_9174_cb16_848f_73c92c85119e 86636e0d_c63d_3791_1c83_fa49299bf3d7["getCheckInterval()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| 86636e0d_c63d_3791_1c83_fa49299bf3d7 a7e37903_6c1f_924f_a4e7_4325462241c1["setCheckInterval()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| a7e37903_6c1f_924f_a4e7_4325462241c1 1e307930_d04a_7a34_7248_2b8c4e8173d5["setMaxTimeWait()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| 1e307930_d04a_7a34_7248_2b8c4e8173d5 de6b9beb_c183_b1fa_f006_9b1684c76d66["getMaxTimeWait()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| de6b9beb_c183_b1fa_f006_9b1684c76d66 060c65eb_39bc_03e0_c913_cd392d260e25["getMaxWriteDelay()"] 8335ea87_158a_c21f_4d30_8f254caf2ded -->|method| 060c65eb_39bc_03e0_c913_cd392d260e25
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/traffic/AbstractTrafficShapingHandler.java lines 52–658
public abstract class AbstractTrafficShapingHandler extends ChannelDuplexHandler {
private static final InternalLogger logger =
InternalLoggerFactory.getInstance(AbstractTrafficShapingHandler.class);
/**
* Default delay between two checks: 1s
*/
public static final long DEFAULT_CHECK_INTERVAL = 1000;
/**
* Default max delay in case of traffic shaping
* (during which no communication will occur).
* Shall be less than TIMEOUT. Here half of "standard" 30s
*/
public static final long DEFAULT_MAX_TIME = 15000;
/**
* Default max size to not exceed in buffer (write only).
*/
static final long DEFAULT_MAX_SIZE = 4 * 1024 * 1024L;
/**
* Default minimal time to wait: 10ms
*/
static final long MINIMAL_WAIT = 10;
/**
* Traffic Counter
*/
protected TrafficCounter trafficCounter;
/**
* Limit in B/s to apply to write
*/
private volatile long writeLimit;
/**
* Limit in B/s to apply to read
*/
private volatile long readLimit;
/**
* Max delay in wait
*/
protected volatile long maxTime = DEFAULT_MAX_TIME; // default 15 s
/**
* Delay between two performance snapshots
*/
protected volatile long checkInterval = DEFAULT_CHECK_INTERVAL; // default 1 s
static final AttributeKey<Boolean> READ_SUSPENDED = AttributeKey
.valueOf(AbstractTrafficShapingHandler.class.getName() + ".READ_SUSPENDED");
static final AttributeKey<Runnable> REOPEN_TASK = AttributeKey.valueOf(AbstractTrafficShapingHandler.class
.getName() + ".REOPEN_TASK");
/**
* Max time to delay before proposing to stop writing new objects from next handlers
*/
volatile long maxWriteDelay = 4 * DEFAULT_CHECK_INTERVAL; // default 4 s
/**
* Max size in the list before proposing to stop writing new objects from next handlers
*/
volatile long maxWriteSize = DEFAULT_MAX_SIZE; // default 4MB
/**
* Rank in UserDefinedWritability (1 for Channel, 2 for Global TrafficShapingHandler).
* Set in final constructor. Must be between 1 and 31
*/
final int userDefinedWritabilityIndex;
/**
* Default value for Channel UserDefinedWritability index
*/
static final int CHANNEL_DEFAULT_USER_DEFINED_WRITABILITY_INDEX = 1;
/**
* Default value for Global UserDefinedWritability index
*/
static final int GLOBAL_DEFAULT_USER_DEFINED_WRITABILITY_INDEX = 2;
/**
Source
Frequently Asked Questions
What is the AbstractTrafficShapingHandler class?
AbstractTrafficShapingHandler is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/traffic/AbstractTrafficShapingHandler.java.
Where is AbstractTrafficShapingHandler defined?
AbstractTrafficShapingHandler is defined in handler/src/main/java/io/netty/handler/traffic/AbstractTrafficShapingHandler.java at line 52.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free