| 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jboss.netty.channel.SimpleChannelHandler
net.tomp2p.utils.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  Executor | 
executor
Executor to associated to any TrafficCounter  | 
protected  TrafficCounter | 
trafficCounter
Traffic Counter  | 
| Constructor Summary | |
|---|---|
AbstractTrafficShapingHandler(Executor executor)
Constructor using default ObjectSizeEstimator and using NO LIMIT and default Check Interval | 
|
AbstractTrafficShapingHandler(Executor executor,
                              long checkInterval)
Constructor using default ObjectSizeEstimator and using NO LIMIT | 
|
AbstractTrafficShapingHandler(Executor executor,
                              long writeLimit,
                              long readLimit)
Constructor using default ObjectSizeEstimator and using default Check Interval | 
|
AbstractTrafficShapingHandler(Executor executor,
                              long writeLimit,
                              long readLimit,
                              long checkInterval)
Constructor using default ObjectSizeEstimator | 
|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                              Executor executor)
Constructor using the specified ObjectSizeEstimator and using NO LIMIT and default Check Interval  | 
|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                              Executor executor,
                              long checkInterval)
Constructor using the specified ObjectSizeEstimator and using NO LIMIT  | 
|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                              Executor executor,
                              long writeLimit,
                              long readLimit)
Constructor using the specified ObjectSizeEstimator and using default Check Interval  | 
|
AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                              Executor executor,
                              long writeLimit,
                              long readLimit,
                              long checkInterval)
Constructor using the specified 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)
 | 
 boolean | 
hasLimit()
 | 
 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 Executor executor
protected long checkInterval
| Constructor Detail | 
|---|
public AbstractTrafficShapingHandler(Executor executor,
                                     long writeLimit,
                                     long readLimit,
                                     long checkInterval)
ObjectSizeEstimator
executor - created for instance like Executors.newCachedThreadPoolwriteLimit - 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 computed
public AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                                     Executor executor,
                                     long writeLimit,
                                     long readLimit,
                                     long checkInterval)
objectSizeEstimator - the ObjectSizeEstimator that will be used to compute
            the size of the messageexecutor - created for instance like Executors.newCachedThreadPoolwriteLimit - 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 computed
public AbstractTrafficShapingHandler(Executor executor,
                                     long writeLimit,
                                     long readLimit)
ObjectSizeEstimator and using default Check Interval
executor - created for instance like Executors.newCachedThreadPoolwriteLimit - 0 or a limit in bytes/sreadLimit - 0 or a limit in bytes/s
public AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                                     Executor executor,
                                     long writeLimit,
                                     long readLimit)
objectSizeEstimator - the ObjectSizeEstimator that will be used to compute
            the size of the messageexecutor - created for instance like Executors.newCachedThreadPoolwriteLimit - 0 or a limit in bytes/sreadLimit - 0 or a limit in bytes/spublic AbstractTrafficShapingHandler(Executor executor)
ObjectSizeEstimator and using NO LIMIT and default Check Interval
executor - created for instance like Executors.newCachedThreadPool
public AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                                     Executor executor)
objectSizeEstimator - the ObjectSizeEstimator that will be used to compute
            the size of the messageexecutor - created for instance like Executors.newCachedThreadPool
public AbstractTrafficShapingHandler(Executor executor,
                                     long checkInterval)
ObjectSizeEstimator and using NO LIMIT
executor - created for instance like Executors.newCachedThreadPoolcheckInterval - The delay between two computations of performances for
            channels or 0 if no stats are to be computed
public AbstractTrafficShapingHandler(org.jboss.netty.util.ObjectSizeEstimator objectSizeEstimator,
                                     Executor executor,
                                     long checkInterval)
objectSizeEstimator - the ObjectSizeEstimator that will be used to compute
            the size of the messageexecutor - created for instance like Executors.newCachedThreadPoolcheckInterval - The delay between two computations of performances for
            channels or 0 if no stats are to be computed| Method 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 performance
public void messageReceived(org.jboss.netty.channel.ChannelHandlerContext arg0,
                            org.jboss.netty.channel.MessageEvent arg1)
                     throws Exception
messageReceived in class org.jboss.netty.channel.SimpleChannelHandlerException
public void writeRequested(org.jboss.netty.channel.ChannelHandlerContext arg0,
                           org.jboss.netty.channel.MessageEvent arg1)
                    throws Exception
writeRequested in class org.jboss.netty.channel.SimpleChannelHandlerException
public void handleDownstream(org.jboss.netty.channel.ChannelHandlerContext ctx,
                             org.jboss.netty.channel.ChannelEvent e)
                      throws Exception
handleDownstream in interface org.jboss.netty.channel.ChannelDownstreamHandlerhandleDownstream in class org.jboss.netty.channel.SimpleChannelHandlerExceptionpublic TrafficCounter getTrafficCounter()
public void releaseExternalResources()
releaseExternalResources in interface org.jboss.netty.util.ExternalResourceReleasablepublic String toString()
toString in class Objectpublic boolean hasLimit()
  | 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||