anon.transport.connection
Interface IChunkReader

All Known Implementing Classes:
SkypeConnection.SkypeReader

public interface IChunkReader

Durch einen IChunkReader wird das lesende Ende eines Datenkanals beschrieben, ueber welchen Daten in Form von byte[] beliebiger Laenge verschickt werden koennen.

Konzeptionel handelt es sich um die chunk-basierte Entsprechung eines InputStream und erlauben den gesicherte Empfang von mehreren Bytes am Stueck (Chunk), wobei davon ausgegangen werden kann, dass der empfangen Chunk inhaltlich genauso gesendet wurde. Die Zuordnung und die Reihenfolge der einzelnen Bytes innerhalb eines Chunks wird durch die uebertragung nicht veraendert.


Method Summary
 int availableChunks()
          Gibt aufschluss darueber, wieviele Chunks gelesen werden koennen, ohne das der Aufruf von readChunk() blockiert.
 void close()
           
 byte[] readChunk()
          Gibt den aeltesten (im Sinne des Einfuegens in den Kanal) der im Kanal befindlichen Chunks zurueck.
 

Method Detail

readChunk

byte[] readChunk()
                 throws ConnectionException
Gibt den aeltesten (im Sinne des Einfuegens in den Kanal) der im Kanal befindlichen Chunks zurueck. Sofern der Kanal leer ist blockiert der Aufruf bis ein Chunk ausgeliefert werden kann.

Evtl. Fehler oder unzulaessige Zustaende des Kanals koennen durch entsprechende Ausnahmen angezeigt werden.

Returns:
Den aeltesten Chunk innerhalb des Kanals. Ein Rueckgabewert von null ist nicht zulaessig und ein Rueckgabewert von byte[0] sollte vermieden werden.
Throws:
ConnectionException

availableChunks

int availableChunks()
                    throws ConnectionException
Gibt aufschluss darueber, wieviele Chunks gelesen werden koennen, ohne das der Aufruf von readChunk() blockiert.

Der Wert dieser Methode sollte nicht schrumpfen, sofern kein lesender Zugriff auf den Kanal erfolgt.

Throws:
ConnectionException

close

void close()
           throws java.io.IOException
Throws:
java.io.IOException