org.apache.ws.commons.tcpmon.core.filter.throttle
Class Throttle

java.lang.Object
  extended by org.apache.ws.commons.tcpmon.core.filter.throttle.Throttle
All Implemented Interfaces:
StreamFilter

public class Throttle
extends Object
implements StreamFilter

class to simulate slow connections by slowing down the system


Constructor Summary
Throttle(ThrottleConfiguration config)
          Constructor.
 
Method Summary
 int getCurrentBytes()
          get the current byte count
 int getTotalBytes()
          how many bytes have gone past?
 void invoke(Stream stream)
          Invoke the filter.
 boolean isReadOnly()
          Determine whether this filter is read-only.
 void pump(int bytes)
          log #of bytes pumped.
 void setCurrentBytes(int currentBytes)
          set the current byte count
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Throttle

public Throttle(ThrottleConfiguration config)
Constructor.

Parameters:
config - the configuration for this throttle instance
Method Detail

getTotalBytes

public int getTotalBytes()
how many bytes have gone past?

Returns:
integer

pump

public void pump(int bytes)
log #of bytes pumped. Will pause when necessary. This method is not synchronized

Parameters:
bytes -

isReadOnly

public boolean isReadOnly()
Description copied from interface: StreamFilter
Determine whether this filter is read-only. A read-only filter will not modify any data in the stream and exclusively use the skip operation to advance in the stream. The information provided by this method may be used to optimize processing of the stream.

Specified by:
isReadOnly in interface StreamFilter
Returns:
true if this filter is read-only

invoke

public void invoke(Stream stream)
Description copied from interface: StreamFilter
Invoke the filter. This method is called by Pipeline when data is available for processing. The implementation can modify the stream by discarding bytes from the stream and inserting new data. If it doesn't wish to modify the stream, it should skip the relevant parts, so that it will be processed by the next filter in the pipeline.

An implementation is not required to process (skip or discard) all the data available on each invocation. If after the invocation of this method Stream.available() is non zero, the remaining (unprocessed) data will be available again during the next invocation of the filter.

Specified by:
invoke in interface StreamFilter
Parameters:
stream - the stream to process

getCurrentBytes

public int getCurrentBytes()
get the current byte count

Returns:
integer

setCurrentBytes

public void setCurrentBytes(int currentBytes)
set the current byte count

Parameters:
currentBytes -


Copyright © The Apache Software Foundation. All Rights Reserved.