anon.transport.connection
Class ChunkConnectionAdapter.ChunkOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by anon.transport.connection.ChunkConnectionAdapter.ChunkOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable
Enclosing class:
ChunkConnectionAdapter

private static class ChunkConnectionAdapter.ChunkOutputStream
extends java.io.OutputStream

Private Implementierung eines OutputStream, welcher die durch #write() uebergeben Bytes als Chunk mit Hilfe eines IChunkWriter sendet.


Field Summary
private static int BUFFER_SIZE
          Die Groesse des Buffers und somit auch die Maximalanzahl der in einem Rutsch uebertragen Bytes.
private  byte[] m_buffer
          Der interne Buffer, welcher die zu uebertragenen Bytes sammelt.
private  int m_state
          Der interne Zustand des Stroms
private  int m_writePos
          Die Position, ab welcher neue Bytes in den Buffer eingefuegt werden koennen.
private  IChunkWriter m_writer
          Der Writer, ueber welchem die Daten transportiert werden.
 
Constructor Summary
ChunkConnectionAdapter.ChunkOutputStream(IChunkWriter a_writer)
          Erstellt einen neuen ChunkOutputStream auf Basis des uebergebenen Writers.
 
Method Summary
 void close()
          Schliesst den Strom und den zugrundeliegenen Writer und uebertraegt zuvor noch den Inhalt des Buffer.
 void flush()
          Veranlasst die sofortige Uebertragung des Buffers.
 void write(int b)
          Fuegt das Uebergebene Byte in den internen Buffer ein und uebertraegt diesen, falls er dadurch erschoepft ist.
 
Methods inherited from class java.io.OutputStream
write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUFFER_SIZE

private static final int BUFFER_SIZE
Die Groesse des Buffers und somit auch die Maximalanzahl der in einem Rutsch uebertragen Bytes.

See Also:
Constant Field Values

m_writer

private IChunkWriter m_writer
Der Writer, ueber welchem die Daten transportiert werden.


m_buffer

private byte[] m_buffer
Der interne Buffer, welcher die zu uebertragenen Bytes sammelt.


m_writePos

private int m_writePos
Die Position, ab welcher neue Bytes in den Buffer eingefuegt werden koennen.


m_state

private int m_state
Der interne Zustand des Stroms

Constructor Detail

ChunkConnectionAdapter.ChunkOutputStream

public ChunkConnectionAdapter.ChunkOutputStream(IChunkWriter a_writer)
Erstellt einen neuen ChunkOutputStream auf Basis des uebergebenen Writers.

Method Detail

write

public void write(int b)
           throws java.io.IOException
Fuegt das Uebergebene Byte in den internen Buffer ein und uebertraegt diesen, falls er dadurch erschoepft ist.

Specified by:
write in class java.io.OutputStream
Throws:
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Veranlasst die sofortige Uebertragung des Buffers. Wenn es sich bei dem aktuellen Paket um das letzte des Stroms handelt, wird diese zusaetzlich noch als geschlossen markiert.

Specified by:
flush in interface java.io.Flushable
Overrides:
flush in class java.io.OutputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Schliesst den Strom und den zugrundeliegenen Writer und uebertraegt zuvor noch den Inhalt des Buffer.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.OutputStream
Throws:
java.io.IOException