com.mindbright.ssh2
Class SSH2StreamChannel

java.lang.Object
  extended bycom.mindbright.ssh2.SSH2Channel
      extended bycom.mindbright.ssh2.SSH2StreamChannel
Direct Known Subclasses:
SSH2InternalChannel, SSH2TCPChannel

public class SSH2StreamChannel
extends SSH2Channel

Class implementing streams-based channels. That is channels which locally are connected to a pair of Input/Output streams. It is also possible to apply filters to the channels.


Field Summary
protected  java.io.InputStream in
           
protected  java.io.OutputStream out
           
protected  java.lang.Thread receiver
           
protected  long rxCounter
           
protected  Queue rxQueue
           
protected  java.lang.Thread transmitter
           
protected  long txCounter
           
 
Fields inherited from class com.mindbright.ssh2.SSH2Channel
channelId, channelType, closeListeners, closeReceived, closeSent, connection, creator, deleted, eofReceived, eofSent, openMonitor, openStatus, peerChanId, rxCurrWinSz, rxInitWinSz, rxMaxPktSz, STATUS_CLOSED, STATUS_FAILED, STATUS_OPEN, STATUS_UNDEFINED, txCurrWinSz, txInitWinSz, txMaxPktSz
 
Constructor Summary
protected SSH2StreamChannel(int channelType, SSH2Connection connection, java.lang.Object creator, java.io.InputStream in, java.io.OutputStream out)
          Create a new stream channel of the given type.
 
Method Summary
 void applyFilter(SSH2StreamFilter filter)
          Apply the given filter to this channel.
protected  void checkRxWindowSize(int len)
           
protected  void closeImpl()
          Channel specific handler for the recipent of a channel close message.
protected  void createStreams()
          Create the transmitter and receiver threads.
protected  void data(SSH2TransportPDU pdu)
          Handle incoming data on the channel.
protected  void eofImpl()
          Channel specific handler for the recipent of an EOF.
protected  void handleRequestImpl(java.lang.String type, boolean wantReply, SSH2TransportPDU pdu)
          Channel specific handler for incoming channel requests.
protected  void openConfirmationImpl(SSH2TransportPDU pdu)
          Channel specific handling of open confirmations.
protected  boolean openFailureImpl(int reasonCode, java.lang.String reasonText, java.lang.String langTag)
          Channel specific handling of open failures.
protected  void outputClosed()
          Called when no more data can be written to the channel.
protected  void startStreams()
          Starts the transmitter and receiver threads.
 void waitUntilClosed()
          Wait until the channel is closed.
protected  void windowAdjustImpl(int inc)
          Channel specific implementation of window adjust messages.
 
Methods inherited from class com.mindbright.ssh2.SSH2Channel
addCloseListener, close, extData, getConnection, getCreator, getId, getPeerId, getType, handleRequest, init, openConfirmation, openFailure, openStatus, recvClose, recvEOF, removeCloseListener, requestFailure, requestSuccess, sendClose, sendEOF, transmit, windowAdjust
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

in

protected java.io.InputStream in

out

protected java.io.OutputStream out

transmitter

protected java.lang.Thread transmitter

receiver

protected java.lang.Thread receiver

rxQueue

protected Queue rxQueue

txCounter

protected long txCounter

rxCounter

protected long rxCounter
Constructor Detail

SSH2StreamChannel

protected SSH2StreamChannel(int channelType,
                            SSH2Connection connection,
                            java.lang.Object creator,
                            java.io.InputStream in,
                            java.io.OutputStream out)
Create a new stream channel of the given type. The channel is associated with an ssh connection. Channel types are defined in SSH2Connection and starts with CH_TYPE.

Parameters:
channelType - Type of channel to create.
connection - The ssh connection to associate the channel with.
creator - The object the channel is created from.
in - The input stream from which data to be sent over the channel is read.
out - The output stream onto which data received from the channel is written.
Method Detail

applyFilter

public void applyFilter(SSH2StreamFilter filter)
Apply the given filter to this channel.

Parameters:
filter - Filter to apply.

checkRxWindowSize

protected final void checkRxWindowSize(int len)

data

protected void data(SSH2TransportPDU pdu)
Description copied from class: SSH2Channel
Handle incoming data on the channel.

Overrides:
data in class SSH2Channel
Parameters:
pdu - The data packet.

openConfirmationImpl

protected void openConfirmationImpl(SSH2TransportPDU pdu)
Description copied from class: SSH2Channel
Channel specific handling of open confirmations.

Specified by:
openConfirmationImpl in class SSH2Channel
Parameters:
pdu - Confirmation packet.

openFailureImpl

protected boolean openFailureImpl(int reasonCode,
                                  java.lang.String reasonText,
                                  java.lang.String langTag)
Description copied from class: SSH2Channel
Channel specific handling of open failures.

Specified by:
openFailureImpl in class SSH2Channel
Parameters:
reasonCode - Code which tells why the open failed. See the ssh protocol drafts for values.
reasonText - A text explaining why the open failed.
langTag - Tag identifying the language of the reason text.

windowAdjustImpl

protected void windowAdjustImpl(int inc)
Description copied from class: SSH2Channel
Channel specific implementation of window adjust messages.

Specified by:
windowAdjustImpl in class SSH2Channel
Parameters:
inc - The amount to increase the window with.

eofImpl

protected void eofImpl()
Description copied from class: SSH2Channel
Channel specific handler for the recipent of an EOF.

Specified by:
eofImpl in class SSH2Channel

closeImpl

protected void closeImpl()
Description copied from class: SSH2Channel
Channel specific handler for the recipent of a channel close message.

Specified by:
closeImpl in class SSH2Channel

outputClosed

protected void outputClosed()
Called when no more data can be written to the channel.


handleRequestImpl

protected void handleRequestImpl(java.lang.String type,
                                 boolean wantReply,
                                 SSH2TransportPDU pdu)
Description copied from class: SSH2Channel
Channel specific handler for incoming channel requests.

Specified by:
handleRequestImpl in class SSH2Channel
Parameters:
type - The type of request.
wantReply - True if an reply is expected.
pdu - The actual channel request.

createStreams

protected void createStreams()
Create the transmitter and receiver threads.


startStreams

protected void startStreams()
Starts the transmitter and receiver threads.


waitUntilClosed

public void waitUntilClosed()
Description copied from class: SSH2Channel
Wait until the channel is closed.

Overrides:
waitUntilClosed in class SSH2Channel