Package org.eclipse.jetty.http2.parser
Class WindowRateControl
- java.lang.Object
-
- org.eclipse.jetty.http2.parser.WindowRateControl
-
- All Implemented Interfaces:
RateControl
public class WindowRateControl extends java.lang.Object implements RateControl
An implementation of
RateControl
that limits the number of events within a time period.Events are kept in a queue and for each event the queue is first drained of the old events outside the time window, and then the new event is added to the queue. The size of the queue is maintained separately in an AtomicInteger and if it exceeds the max number of events then
onEvent(Object)
returnsfalse
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
WindowRateControl.Factory
-
Field Summary
-
Fields inherited from interface org.eclipse.jetty.http2.parser.RateControl
NO_RATE_CONTROL
-
-
Constructor Summary
Constructors Constructor Description WindowRateControl(int maxEvents, java.time.Duration window)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static WindowRateControl
fromEventsPerSecond(int maxEvents)
int
getEventsPerSecond()
boolean
onEvent(java.lang.Object event)
Applications should call this method when they want to signal an event that is subject to rate control.
-
-
-
Method Detail
-
fromEventsPerSecond
public static WindowRateControl fromEventsPerSecond(int maxEvents)
-
getEventsPerSecond
public int getEventsPerSecond()
-
onEvent
public boolean onEvent(java.lang.Object event)
Description copied from interface:RateControl
Applications should call this method when they want to signal an event that is subject to rate control.
Implementations should return true if the event does not exceed the desired rate, or false to signal that the event exceeded the desired rate.
- Specified by:
onEvent
in interfaceRateControl
- Parameters:
event
- the event subject to rate control.- Returns:
- true IFF the rate is within limits
-
-