public class RateLimitingStreamSinkConduit
extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
Allows send speed to be throttled
Note that throttling is applied after an initial write, so if a big write is performed initially it may be a while before it can write again.
Constructor and Description |
---|
RateLimitingStreamSinkConduit(org.xnio.conduits.StreamSinkConduit next, int bytes, long time, TimeUnit timeUnit) |
Modifier and Type | Method and Description |
---|---|
void | awaitWritable() |
void | awaitWritable(long time, TimeUnit timeUnit) |
boolean | isWriteResumed() |
void | resumeWrites() |
void | suspendWrites() |
long | transferFrom(FileChannel src, long position, long count) |
long | transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) |
void | wakeupWrites() |
int | write(ByteBuffer src) |
long | write(ByteBuffer[] srcs, int offs, int len) |
int | writeFinal(ByteBuffer src) |
long | writeFinal(ByteBuffer[] srcs, int offs, int len) |
flush, getWriteThread, isWriteShutdown, setWriteReadyHandler, terminateWrites, truncateWrites
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public RateLimitingStreamSinkConduit(org.xnio.conduits.StreamSinkConduit next, int bytes, long time, TimeUnit timeUnit)
next
- The next conduitbytes
- The number of bytes that are allowed per time frametime
- The time frametimeUnit
- The time unitpublic int write(ByteBuffer src) throws IOException
write
in interface org.xnio.conduits.StreamSinkConduit
write
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public long transferFrom(FileChannel src, long position, long count) throws IOException
transferFrom
in interface org.xnio.conduits.StreamSinkConduit
transferFrom
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public long transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) throws IOException
transferFrom
in interface org.xnio.conduits.StreamSinkConduit
transferFrom
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public long write(ByteBuffer[] srcs, int offs, int len) throws IOException
write
in interface org.xnio.conduits.StreamSinkConduit
write
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public int writeFinal(ByteBuffer src) throws IOException
writeFinal
in interface org.xnio.conduits.StreamSinkConduit
writeFinal
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public long writeFinal(ByteBuffer[] srcs, int offs, int len) throws IOException
writeFinal
in interface org.xnio.conduits.StreamSinkConduit
writeFinal
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public void resumeWrites()
resumeWrites
in interface org.xnio.conduits.SinkConduit
resumeWrites
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
public void suspendWrites()
suspendWrites
in interface org.xnio.conduits.SinkConduit
suspendWrites
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
public void wakeupWrites()
wakeupWrites
in interface org.xnio.conduits.SinkConduit
wakeupWrites
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
public boolean isWriteResumed()
isWriteResumed
in interface org.xnio.conduits.SinkConduit
isWriteResumed
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
public void awaitWritable() throws IOException
awaitWritable
in interface org.xnio.conduits.SinkConduit
awaitWritable
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public void awaitWritable(long time, TimeUnit timeUnit) throws IOException
awaitWritable
in interface org.xnio.conduits.SinkConduit
awaitWritable
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
Copyright © 2020 JBoss by Red Hat. All rights reserved.