Package net.i2p.i2ptunnel
Class I2PTunnelRunner
java.lang.Object
java.lang.Thread
net.i2p.util.I2PThread
net.i2p.util.I2PAppThread
net.i2p.i2ptunnel.I2PTunnelRunner
- All Implemented Interfaces:
Runnable
,I2PSocket.SocketErrorListener
- Direct Known Subclasses:
I2PTunnelHTTPClientRunner
A thread that starts two more threads, one to forward traffic in each direction.
Warning - not maintained as a stable API for external use.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
For use in new constructorstatic interface
Nested classes/interfaces inherited from class net.i2p.util.I2PThread
I2PThread.OOMEventListener
Nested classes/interfaces inherited from class java.lang.Thread
Thread.BuilderPREVIEW, Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
Modifier and TypeFieldDescriptionprotected final Log
(package private) static int
max bytes streamed in a packet - smaller ones might be filled up to this size.(package private) static final int
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
ConstructorDescriptionI2PTunnelRunner
(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List<I2PSocket> sockList) Deprecated.use FailCallback constructorI2PTunnelRunner
(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List<I2PSocket> sockList, Runnable onTimeout) Deprecated.use FailCallback constructorI2PTunnelRunner
(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List<I2PSocket> sockList, I2PTunnelRunner.FailCallback onFail) Recommended new constructor.I2PTunnelRunner
(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, List<I2PSocket> sockList) Deprecated.use FailCallback constructorI2PTunnelRunner
(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, List<I2PSocket> sockList, Runnable onTimeout) Deprecated.use FailCallback constructor -
Method Summary
Modifier and TypeMethodDescriptionprotected void
close
(OutputStream out, InputStream in, OutputStream i2pout, InputStream i2pin, Socket s, I2PSocket i2ps, Thread t1, Thread t2) void
Deprecated, unimplemented in streaming, never called.long
Deprecated.unusedprotected InputStream
protected OutputStream
long
When this runner started up transferring databoolean
Deprecated.unusedvoid
run()
void
Will be called if we get any data back.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, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, startVirtualThread, stop, suspend, threadId, toString, yield
-
Field Details
-
_log
-
MAX_PACKET_SIZE
static int MAX_PACKET_SIZEmax bytes streamed in a packet - smaller ones might be filled up to this size. Larger ones are not split (at least not on Sun's impl of BufferedOutputStream), but that is the streaming api's job... -
NETWORK_BUFFER_SIZE
static final int NETWORK_BUFFER_SIZE
-
-
Constructor Details
-
I2PTunnelRunner
@Deprecated public I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, List<I2PSocket> sockList) Deprecated.use FailCallback constructorStarts itself- Parameters:
slock
- the socket lock, non-nullinitialI2PData
- may be nullsockList
- may be null. Caller must add i2ps to the list! It will be removed here on completion. Will synchronize on slock when removing.
-
I2PTunnelRunner
@Deprecated public I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List<I2PSocket> sockList) Deprecated.use FailCallback constructorStarts itself- Parameters:
slock
- the socket lock, non-nullinitialI2PData
- may be nullinitialSocketData
- may be nullsockList
- may be null. Caller must add i2ps to the list! It will be removed here on completion. Will synchronize on slock when removing.
-
I2PTunnelRunner
@Deprecated public I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, List<I2PSocket> sockList, Runnable onTimeout) Deprecated.use FailCallback constructorStarts itself- Parameters:
slock
- the socket lock, non-nullinitialI2PData
- may be nullsockList
- may be null. Caller must add i2ps to the list! It will be removed here on completion. Will synchronize on slock when removing.onTimeout
- May be null. If non-null and no data (except initial data) was received, it will be run before closing s.
-
I2PTunnelRunner
@Deprecated public I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List<I2PSocket> sockList, Runnable onTimeout) Deprecated.use FailCallback constructorStarts itself- Parameters:
slock
- the socket lock, non-nullinitialI2PData
- may be nullinitialSocketData
- may be nullsockList
- may be null. Caller must add i2ps to the list! It will be removed here on completion. Will synchronize on slock when removing.onTimeout
- May be null. If non-null and no data (except initial data) was received, it will be run before closing s.
-
I2PTunnelRunner
public I2PTunnelRunner(Socket s, I2PSocket i2ps, Object slock, byte[] initialI2PData, byte[] initialSocketData, List<I2PSocket> sockList, I2PTunnelRunner.FailCallback onFail) Recommended new constructor. Does NOT start itself. Caller must call start().- Parameters:
slock
- the socket lock, non-nullinitialI2PData
- may be nullinitialSocketData
- may be nullsockList
- may be null. Caller must add i2ps to the list! It will be removed here on completion. Will synchronize on slock when removing.onFail
- May be null. If non-null and no data (except initial data) was received, it will be run before closing s.
-
-
Method Details
-
isFinished
Deprecated.unusedhave we closed at least one (if not both) of the streams [aka we're done running the streams]? -
getLastActivityOn
Deprecated.unusedWhen 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 -
setSuccessCallback
Will be called if we get any data back. This is called after the first byte of data is received, not on completion. Only one of SuccessCallback, onTimeout, or onFail will be called.- Since:
- 0.9.39
-
getSocketIn
- Throws:
IOException
-
getSocketOut
- Throws:
IOException
-
run
public void run() -
close
protected void close(OutputStream out, InputStream in, OutputStream i2pout, InputStream i2pin, Socket s, I2PSocket i2ps, Thread t1, Thread t2) throws InterruptedException - Parameters:
out
- may be nullin
- may be nulli2pout
- may be nulli2pin
- may be nullt1
- may be nullt2
- may be null- Throws:
InterruptedException
-
errorOccurred
public void errorOccurred()Deprecated, unimplemented in streaming, never called.- Specified by:
errorOccurred
in interfaceI2PSocket.SocketErrorListener
-