Class Window

All Implemented Interfaces:
Closeable, AutoCloseable, ChannelHolder
Direct Known Subclasses:
LocalWindow, RemoteWindow

public abstract class Window extends AbstractLoggingBean implements ChannelHolder, Closeable
A Channel implements a sliding window flow control for data packets (SSH_MSG_CHANNEL_DATA and SSH_MSG_CHANNEL_EXTENDED_DATA packets). Each channel has two windows, a local window describing how much data it is prepared to receive (and the peer is allowed to send), and a remote window that reflects this side's view of the peer's local window. When the local window size is zero, no data should be received; when the remote window size is zero, no data should be sent. Peers update the other's remote window periodically, but at the latest when a window is exhausted, by sending SSH_MSG_CHANNEL_WINDOW_ADJUST messages.
Author:
Apache MINA SSHD Project
See Also:
  • Field Details

    • lock

      protected final Object lock
  • Constructor Details

    • Window

      protected Window(Channel channel, boolean isClient)
  • Method Details

    • largerThan

      protected static Predicate<Window> largerThan(long minSize)
    • getChannel

      public Channel getChannel()
      Specified by:
      getChannel in interface ChannelHolder
      Returns:
      The associated Channel instance
    • getSize

      public long getSize()
    • getMaxSize

      public long getMaxSize()
    • getPacketSize

      public long getPacketSize()
    • init

      protected void init(long size, long packetSize, PropertyResolver resolver)
    • consume

      public abstract void consume(long len) throws IOException
      Throws:
      IOException
    • updateSize

      protected void updateSize(long size)
    • checkInitialized

      protected void checkInitialized(String location)
    • isOpen

      public boolean isOpen()
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • toString

      public String toString()
      Overrides:
      toString in class Object