net.i2p.sam
Class SAMStreamSession.StreamSender

java.lang.Object
  extended by net.i2p.sam.SAMStreamSession.StreamSender
All Implemented Interfaces:
Runnable
Enclosing class:
SAMStreamSession

protected abstract static class SAMStreamSession.StreamSender
extends Object
implements Runnable

Lets us push data through the stream without blocking, (even after exceeding the I2PSocket's buffer)


Field Summary
protected  int _id
           
protected  I2PSocket i2pSocket
           
 
Constructor Summary
SAMStreamSession.StreamSender(I2PSocket s, int id)
           
 
Method Summary
abstract  void run()
           
abstract  void sendBytes(InputStream in, int size)
          Send bytes through the SAM STREAM session socket sender
abstract  void shutDownGracefully()
          Stop a SAM STREAM session socket sender gracefully: stop the sender thread once all pending data has been sent.
abstract  void stopRunning()
          Stop a SAM STREAM session socket sender thread immediately
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_id

protected final int _id

i2pSocket

protected final I2PSocket i2pSocket
Constructor Detail

SAMStreamSession.StreamSender

public SAMStreamSession.StreamSender(I2PSocket s,
                                     int id)
                              throws IOException
Throws:
IOException
Method Detail

sendBytes

public abstract void sendBytes(InputStream in,
                               int size)
                        throws IOException
Send bytes through the SAM STREAM session socket sender

Parameters:
in - Data input stream
size - Count of bytes to send
Throws:
IOException - if the client didnt provide enough data

stopRunning

public abstract void stopRunning()
Stop a SAM STREAM session socket sender thread immediately


shutDownGracefully

public abstract void shutDownGracefully()
Stop a SAM STREAM session socket sender gracefully: stop the sender thread once all pending data has been sent.


run

public abstract void run()
Specified by:
run in interface Runnable