Package org.jgroups.protocols
Class RATE_LIMITER
- java.lang.Object
-
- org.jgroups.stack.Protocol
-
- org.jgroups.protocols.RATE_LIMITER
-
-
Field Summary
Fields Modifier and Type Field Description protected longcurrent_period_startprotected intfrag_sizeprotected java.util.concurrent.locks.Locklockprotected longmax_bytesprotected intnum_blockingsprotected longnum_bytes_sent_in_periodKeeps track of the number of bytes sent in the current time periodprotected booleanrunningprotected longtime_periodprotected longtime_period_nsprotected longtotal_block_time-
Fields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, stack, stats, up_prot
-
-
Constructor Summary
Constructors Constructor Description RATE_LIMITER()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectdown(Event evt)An event is to be sent down the stack.java.lang.Objectdown(Message msg)A message is sent down the stack.doublegetAverageBlockTime()longgetMaxBytes()longgetTimePeriod()longgetTotalBlockTime()voidinit()Called after a protocol has been created and before the protocol is started.voidresetStats()voidsetMaxBytes(long max_bytes)voidsetTimePeriod(long time_period)voidstart()This method is called on aJChannel.connect(String); starts work.voidstop()Called on aJChannel.disconnect(); stops work (e.g.-
Methods inherited from class org.jgroups.stack.Protocol
accept, addPolicy, addr, addr, afterCreationHook, destroy, down, enableStats, getAddress, getComponents, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getPolicies, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, isErgonomics, level, parse, policies, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, setAddress, setDownProtocol, setErgonomics, setId, setLevel, setPolicies, setProtocolStack, setSocketFactory, setUpProtocol, setValue, statsEnabled, toString, up, up, up
-
-
-
-
Field Detail
-
max_bytes
protected long max_bytes
-
time_period
protected long time_period
-
time_period_ns
protected long time_period_ns
-
num_bytes_sent_in_period
protected long num_bytes_sent_in_period
Keeps track of the number of bytes sent in the current time period
-
current_period_start
protected long current_period_start
-
lock
protected final java.util.concurrent.locks.Lock lock
-
num_blockings
protected int num_blockings
-
total_block_time
protected long total_block_time
-
frag_size
protected int frag_size
-
running
protected volatile boolean running
-
-
Method Detail
-
getMaxBytes
public long getMaxBytes()
-
setMaxBytes
public void setMaxBytes(long max_bytes)
-
getTimePeriod
public long getTimePeriod()
-
setTimePeriod
public void setTimePeriod(long time_period)
-
getTotalBlockTime
public long getTotalBlockTime()
-
getAverageBlockTime
public double getAverageBlockTime()
-
resetStats
public void resetStats()
- Overrides:
resetStatsin classProtocol
-
init
public void init() throws java.lang.ExceptionDescription copied from class:ProtocolCalled after a protocol has been created and before the protocol is started. Attributes are already set. Other protocols are not yet connected and events cannot yet be sent.
-
start
public void start() throws java.lang.ExceptionDescription copied from class:ProtocolThis method is called on aJChannel.connect(String); starts work. Protocols are connected ready to receive events. Will be called from bottom to top.- Specified by:
startin interfaceLifecycle- Overrides:
startin classProtocol- Throws:
java.lang.Exception- Thrown if protocol cannot be started successfully. This will cause the ProtocolStack to fail, soJChannel.connect(String)will throw an exception
-
stop
public void stop()
Description copied from class:ProtocolCalled on aJChannel.disconnect(); stops work (e.g. by closing multicast socket). Will be called from top to bottom.
-
down
public java.lang.Object down(Event evt)
Description copied from class:ProtocolAn event is to be sent down the stack. A protocol may want to examine its type and perform some action on it, depending on the event's type. If the event is a message MSG, then the protocol may need to add a header to it (or do nothing at all) before sending it down the stack usingdown_prot.down().
-
-