|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jboss.netty.channel.SimpleChannelHandler
org.jboss.netty.handler.traffic.AbstractTrafficShapingHandler
public abstract class AbstractTrafficShapingHandler
AbstractTrafficShapingHandler allows to limit the global bandwidth
(see GlobalTrafficShapingHandler
) or per session
bandwidth (see ChannelTrafficShapingHandler
), as traffic shaping.
It allows too to implement an almost real time monitoring of the bandwidth using
the monitors from TrafficCounter
that will call back every checkInterval
the method doAccounting of this handler.
An ObjectSizeEstimator
can be passed at construction to specify what
is the size of the object to be read or write accordingly to the type of
object. If not specified, it will used the DefaultObjectSizeEstimator
implementation.
If you want for any particular reasons to stop the monitoring (accounting) or to change
the read/write limit or the check interval, several methods allow that for you:
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler |
---|
org.jboss.netty.channel.ChannelHandler.Sharable |
Field Summary | |
---|---|
protected long |
checkInterval
Delay between two performance snapshots |
static long |
DEFAULT_CHECK_INTERVAL
Default delay between two checks: 1s |
protected org.jboss.netty.util.Timer |
timer
Timer to associated to any TrafficCounter |
protected TrafficCounter |
trafficCounter
Traffic Counter |
Constructor Summary | |
---|---|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
org.jboss.netty.util.Timer timer)
Constructor using the specified ObjectSizeEstimator and using NO LIMIT and default Check Interval |
|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
org.jboss.netty.util.Timer timer,
long checkInterval)
Constructor using the specified ObjectSizeEstimator and using NO LIMIT |
|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
org.jboss.netty.util.Timer timer,
long writeLimit,
long readLimit)
Constructor using the specified ObjectSizeEstimator and using default Check Interval |
|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
org.jboss.netty.util.Timer timer,
long writeLimit,
long readLimit,
long checkInterval)
Constructor using the specified ObjectSizeEstimator |
|
AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer)
Constructor using default ObjectSizeEstimator and using NO LIMIT and default Check Interval |
|
AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer,
long checkInterval)
Constructor using default ObjectSizeEstimator and using NO LIMIT |
|
AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer,
long writeLimit,
long readLimit)
Constructor using default ObjectSizeEstimator and using default Check Interval |
|
AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer,
long writeLimit,
long readLimit,
long checkInterval)
Constructor using default ObjectSizeEstimator |
Method Summary | |
---|---|
void |
configure(long newCheckInterval)
Change the check interval. |
void |
configure(long newWriteLimit,
long newReadLimit)
Change the underlying limitations. |
void |
configure(long newWriteLimit,
long newReadLimit,
long newCheckInterval)
Change the underlying limitations and check interval. |
protected void |
doAccounting(TrafficCounter counter)
Called each time the accounting is computed from the TrafficCounters. |
TrafficCounter |
getTrafficCounter()
|
void |
handleDownstream(org.jboss.netty.channel.ChannelHandlerContext ctx,
org.jboss.netty.channel.ChannelEvent e)
|
void |
messageReceived(org.jboss.netty.channel.ChannelHandlerContext arg0,
org.jboss.netty.channel.MessageEvent arg1)
|
void |
releaseExternalResources()
|
String |
toString()
|
void |
writeRequested(org.jboss.netty.channel.ChannelHandlerContext arg0,
org.jboss.netty.channel.MessageEvent arg1)
|
Methods inherited from class org.jboss.netty.channel.SimpleChannelHandler |
---|
bindRequested, channelBound, channelClosed, channelConnected, channelDisconnected, channelInterestChanged, channelOpen, channelUnbound, childChannelClosed, childChannelOpen, closeRequested, connectRequested, disconnectRequested, exceptionCaught, handleUpstream, setInterestOpsRequested, unbindRequested, writeComplete |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final long DEFAULT_CHECK_INTERVAL
protected TrafficCounter trafficCounter
protected org.jboss.netty.util.Timer timer
protected long checkInterval
Constructor Detail |
---|
public AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer, long writeLimit, long readLimit, long checkInterval)
ObjectSizeEstimator
timer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)writeLimit
- 0 or a limit in bytes/sreadLimit
- 0 or a limit in bytes/scheckInterval
- The delay between two computations of performances for
channels or 0 if no stats are to be computedpublic AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator, org.jboss.netty.util.Timer timer, long writeLimit, long readLimit, long checkInterval)
objectSizeEstimator
- the ObjectSizeEstimator
that will be used to compute
the size of the messagetimer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)writeLimit
- 0 or a limit in bytes/sreadLimit
- 0 or a limit in bytes/scheckInterval
- The delay between two computations of performances for
channels or 0 if no stats are to be computedpublic AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer, long writeLimit, long readLimit)
ObjectSizeEstimator
and using default Check Interval
timer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)writeLimit
- 0 or a limit in bytes/sreadLimit
- 0 or a limit in bytes/spublic AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator, org.jboss.netty.util.Timer timer, long writeLimit, long readLimit)
objectSizeEstimator
- the ObjectSizeEstimator
that will be used to compute
the size of the messagetimer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)writeLimit
- 0 or a limit in bytes/sreadLimit
- 0 or a limit in bytes/spublic AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer)
ObjectSizeEstimator
and using NO LIMIT and default Check Interval
timer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)public AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator, org.jboss.netty.util.Timer timer)
objectSizeEstimator
- the ObjectSizeEstimator
that will be used to compute
the size of the messagetimer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)public AbstractTrafficShapingHandler(org.jboss.netty.util.Timer timer, long checkInterval)
ObjectSizeEstimator
and using NO LIMIT
timer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)checkInterval
- The delay between two computations of performances for
channels or 0 if no stats are to be computedpublic AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator, org.jboss.netty.util.Timer timer, long checkInterval)
objectSizeEstimator
- the ObjectSizeEstimator
that will be used to compute
the size of the messagetimer
- created once for instance like HashedWheelTimer(10, TimeUnit.MILLISECONDS, 1024)checkInterval
- The delay between two computations of performances for
channels or 0 if no stats are to be computedMethod Detail |
---|
public void configure(long newWriteLimit, long newReadLimit, long newCheckInterval)
newWriteLimit
- newReadLimit
- newCheckInterval
- public void configure(long newWriteLimit, long newReadLimit)
newWriteLimit
- newReadLimit
- public void configure(long newCheckInterval)
newCheckInterval
- protected void doAccounting(TrafficCounter counter)
counter
- the TrafficCounter that computes its performancepublic void messageReceived(org.jboss.netty.channel.ChannelHandlerContext arg0, org.jboss.netty.channel.MessageEvent arg1) throws Exception
messageReceived
in class org.jboss.netty.channel.SimpleChannelHandler
Exception
public void writeRequested(org.jboss.netty.channel.ChannelHandlerContext arg0, org.jboss.netty.channel.MessageEvent arg1) throws Exception
writeRequested
in class org.jboss.netty.channel.SimpleChannelHandler
Exception
public void handleDownstream(org.jboss.netty.channel.ChannelHandlerContext ctx, org.jboss.netty.channel.ChannelEvent e) throws Exception
handleDownstream
in interface org.jboss.netty.channel.ChannelDownstreamHandler
handleDownstream
in class org.jboss.netty.channel.SimpleChannelHandler
Exception
public TrafficCounter getTrafficCounter()
public void releaseExternalResources()
releaseExternalResources
in interface org.jboss.netty.util.ExternalResourceReleasable
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |