net.i2p.sam
Class SAMStreamSession.StreamSender

java.lang.Object
  extended by net.i2p.sam.SAMStreamSession.StreamSender
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
SAMStreamSession.v1StreamSender, SAMv2StreamSession.v2StreamSender
Enclosing class:
SAMStreamSession

protected class SAMStreamSession.StreamSender
extends java.lang.Object
implements java.lang.Runnable

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


Constructor Summary
SAMStreamSession.StreamSender(I2PSocket s, int id)
           
 
Method Summary
 void run()
           
 void sendBytes(java.io.InputStream in, int size)
          Send bytes through the SAM STREAM session socket sender
 void shutDownGracefully()
          Stop a SAM STREAM session socket sender gracefully: stop the sender thread once all pending data has been sent.
 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
 

Constructor Detail

SAMStreamSession.StreamSender

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

sendBytes

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

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

stopRunning

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


shutDownGracefully

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


run

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