net.i2p.i2ptunnel
Class I2PTunnelOutproxyRunner

java.lang.Object
  extended by java.lang.Thread
      extended by net.i2p.util.I2PThread
          extended by net.i2p.util.I2PAppThread
              extended by net.i2p.i2ptunnel.I2PTunnelOutproxyRunner
All Implemented Interfaces:
Runnable

public class I2PTunnelOutproxyRunner
extends I2PAppThread

Like I2PTunnelRunner but socket-to-socket Warning - not maintained as a stable API for external use.

Since:
0.9.11

Nested Class Summary
 
Nested classes/interfaces inherited from class net.i2p.util.I2PThread
I2PThread.OOMEventListener
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
protected  Log _log
           
(package private)  boolean finished
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
I2PTunnelOutproxyRunner(Socket s, Socket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, I2PTunnelRunner.FailCallback onTimeout)
          Does NOT start itself.
 
Method Summary
protected  void close(OutputStream out, InputStream in, OutputStream i2pout, InputStream i2pin, Socket s, Socket i2ps, Thread t1, Thread t2)
           
 void errorOccurred()
           
 long getLastActivityOn()
          Deprecated. unused
protected  InputStream getSocketIn()
           
protected  OutputStream getSocketOut()
           
 long getStartedOn()
          When this runner started up transferring data
 boolean isFinished()
          Deprecated. unused
 void run()
           
 
Methods inherited from class net.i2p.util.I2PAppThread
addOOMEventThreadListener, fireOOM, removeOOMEventThreadListener
 
Methods inherited from class net.i2p.util.I2PThread
addOOMEventListener, removeOOMEventListener, start
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, 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, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_log

protected final Log _log

finished

volatile boolean finished
Constructor Detail

I2PTunnelOutproxyRunner

public I2PTunnelOutproxyRunner(Socket s,
                               Socket i2ps,
                               Object slock,
                               byte[] initialI2PData,
                               byte[] initialSocketData,
                               I2PTunnelRunner.FailCallback onTimeout)
Does NOT start itself. Caller must call start().

Parameters:
slock - the socket lock, non-null
initialI2PData - may be null
onTimeout - May be null. If non-null and no data (except initial data) was received, it will be run before closing s.
Method Detail

isFinished

public boolean isFinished()
Deprecated. unused

have we closed at least one (if not both) of the streams [aka we're done running the streams]?


getLastActivityOn

public long getLastActivityOn()
Deprecated. unused

When was the last data for this runner sent or received? As of 0.9.20, returns -1 always!

Returns:
date (ms since the epoch), or -1 if no data has been transferred yet

getStartedOn

public long getStartedOn()
When this runner started up transferring data


getSocketIn

protected InputStream getSocketIn()
                           throws IOException
Throws:
IOException

getSocketOut

protected OutputStream getSocketOut()
                             throws IOException
Throws:
IOException

run

public void run()
Specified by:
run in interface Runnable
Overrides:
run in class I2PThread

close

protected void close(OutputStream out,
                     InputStream in,
                     OutputStream i2pout,
                     InputStream i2pin,
                     Socket s,
                     Socket i2ps,
                     Thread t1,
                     Thread t2)
              throws InterruptedException
Throws:
InterruptedException

errorOccurred

public void errorOccurred()