ch.ethz.ssh2.channel
Class StreamForwarder

java.lang.Object
  extended by java.lang.Thread
      extended by ch.ethz.ssh2.channel.StreamForwarder
All Implemented Interfaces:
java.lang.Runnable

public class StreamForwarder
extends java.lang.Thread

A StreamForwarder forwards data between two given streams. If two StreamForwarder threads are used (one for each direction) then one can be configured to shutdown the underlying channel/socket if both threads have finished forwarding (EOF).

Version:
2.50, 03/15/10
Author:
Christian Plattner

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
(package private)  byte[] buffer
           
(package private)  Channel c
           
(package private)  java.io.InputStream is
           
(package private)  java.lang.String mode
           
(package private)  java.io.OutputStream os
           
(package private)  java.net.Socket s
           
(package private)  StreamForwarder sibling
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
StreamForwarder(Channel c, StreamForwarder sibling, java.net.Socket s, java.io.InputStream is, java.io.OutputStream os, java.lang.String mode)
           
 
Method Summary
 void run()
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

os

java.io.OutputStream os

is

java.io.InputStream is

buffer

byte[] buffer

c

Channel c

sibling

StreamForwarder sibling

s

java.net.Socket s

mode

java.lang.String mode
Constructor Detail

StreamForwarder

StreamForwarder(Channel c,
                StreamForwarder sibling,
                java.net.Socket s,
                java.io.InputStream is,
                java.io.OutputStream os,
                java.lang.String mode)
          throws java.io.IOException
Throws:
java.io.IOException
Method Detail

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread