public class Window extends AbstractLoggingBean implements java.nio.channels.Channel, ChannelHolder
| Modifier and Type | Field and Description |
|---|---|
private AbstractChannel |
channelInstance |
private java.util.concurrent.atomic.AtomicBoolean |
closed |
private java.util.concurrent.atomic.AtomicBoolean |
initialized |
private java.lang.Object |
lock |
private long |
maxSize |
private long |
packetSize |
private long |
size |
static java.util.function.Predicate<Window> |
SPACE_AVAILABLE_PREDICATE
Default
Predicate used to test if space became available |
private java.lang.String |
suffix |
log| Constructor and Description |
|---|
Window(AbstractChannel channel,
java.lang.Object lock,
boolean client,
boolean local) |
| Modifier and Type | Method and Description |
|---|---|
void |
check(long maxFree) |
protected void |
checkInitialized(java.lang.String location) |
void |
close() |
void |
consume(long len) |
void |
consumeAndCheck(long len) |
void |
expand(int window) |
AbstractChannel |
getChannel() |
long |
getMaxSize() |
long |
getPacketSize() |
long |
getSize() |
void |
init(long size,
long packetSize,
PropertyResolver resolver) |
void |
init(PropertyResolver resolver) |
boolean |
isOpen() |
java.lang.String |
toString() |
protected void |
updateSize(long size) |
void |
waitAndConsume(long len,
long maxWaitTime)
Waits for enough data to become available to consume the specified size
|
protected void |
waitForCondition(java.util.function.Predicate<? super Window> predicate,
long maxWaitTime)
Waits up to a specified amount of time for a condition to be satisfied and signaled via the lock.
|
long |
waitForSpace(long maxWaitTime)
Waits until some data becomes available or timeout expires
|
getSimplifiedLoggerpublic static final java.util.function.Predicate<Window> SPACE_AVAILABLE_PREDICATE
Predicate used to test if space became availableprivate final java.util.concurrent.atomic.AtomicBoolean closed
private final java.util.concurrent.atomic.AtomicBoolean initialized
private final AbstractChannel channelInstance
private final java.lang.Object lock
private final java.lang.String suffix
private long size
private long maxSize
private long packetSize
public Window(AbstractChannel channel, java.lang.Object lock, boolean client, boolean local)
public AbstractChannel getChannel()
getChannel in interface ChannelHolderChannel instancepublic long getSize()
public long getMaxSize()
public long getPacketSize()
public void init(PropertyResolver resolver)
public void init(long size,
long packetSize,
PropertyResolver resolver)
public void expand(int window)
public void consume(long len)
public void consumeAndCheck(long len)
throws java.io.IOException
java.io.IOExceptionpublic void check(long maxFree)
throws java.io.IOException
java.io.IOExceptionpublic void waitAndConsume(long len,
long maxWaitTime)
throws java.lang.InterruptedException,
WindowClosedException,
java.net.SocketTimeoutException
len - Size of data to consumemaxWaitTime - ax. time (millis) to wait for enough data to become availablejava.lang.InterruptedException - If interrupted while waitingWindowClosedException - If window closed while waitingjava.net.SocketTimeoutException - If timeout expired before enough data became availablewaitForCondition(Predicate, long),
consume(long)public long waitForSpace(long maxWaitTime)
throws java.lang.InterruptedException,
WindowClosedException,
java.net.SocketTimeoutException
maxWaitTime - Max. time (millis) to wait for space to become availablejava.lang.InterruptedException - If interrupted while waitingWindowClosedException - If window closed while waitingjava.net.SocketTimeoutException - If timeout expired before space became availablewaitForCondition(Predicate, long)protected void waitForCondition(java.util.function.Predicate<? super Window> predicate, long maxWaitTime) throws WindowClosedException, java.lang.InterruptedException, java.net.SocketTimeoutException
predicate - The Predicate to check if the condition has been satisfied - the argument
to the predicate is this referencemaxWaitTime - Max. time (millis) to wait for the condition to be satisfiedWindowClosedException - If window closed while waitingjava.lang.InterruptedException - If interrupted while waitingjava.net.SocketTimeoutException - If timeout expired before condition was satisfiedisOpen()protected void updateSize(long size)
protected void checkInitialized(java.lang.String location)
public boolean isOpen()
isOpen in interface java.nio.channels.Channelpublic void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in interface java.nio.channels.Channeljava.io.IOExceptionpublic java.lang.String toString()
toString in class java.lang.Object