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 long
current_period_start
protected int
frag_size
protected java.util.concurrent.locks.Lock
lock
protected long
max_bytes
protected int
num_blockings
protected long
num_bytes_sent_in_period
Keeps track of the number of bytes sent in the current time periodprotected boolean
running
protected long
time_period
protected long
time_period_ns
protected long
total_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.Object
down(Event evt)
An event is to be sent down the stack.java.lang.Object
down(Message msg)
A message is sent down the stack.double
getAverageBlockTime()
long
getMaxBytes()
long
getTimePeriod()
long
getTotalBlockTime()
void
init()
Called after a protocol has been created and before the protocol is started.void
resetStats()
void
setMaxBytes(long max_bytes)
void
setTimePeriod(long time_period)
void
start()
This method is called on aJChannel.connect(String)
; starts work.void
stop()
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:
resetStats
in classProtocol
-
init
public void init() throws java.lang.Exception
Description copied from class:Protocol
Called 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.Exception
Description copied from class:Protocol
This 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:
start
in interfaceLifecycle
- Overrides:
start
in 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:Protocol
Called 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:Protocol
An 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()
.
-
-