anon.transport.connection
Class ChunkConnectionAdapter

java.lang.Object
  extended by anon.transport.connection.ChunkConnectionAdapter
All Implemented Interfaces:
IConnection, IStreamConnection

public class ChunkConnectionAdapter
extends java.lang.Object
implements IStreamConnection

Adaptiert eine bestehende IChunkConnection um darauf aufbauend, eine IStreamConnection bereitzustellen. Hierzu exitieren interne Implentierung von ChunkConnectionAdapter.ChunkInputStream und OutputStream welche den Paketbasierten Transport von byte-Stroemen organisieren.


Nested Class Summary
private static class ChunkConnectionAdapter.ChunkInputStream
          Implentierung eines InputStream, welcher die durch ChunkConnectionAdapter.ChunkInputStream.read() zurueckgegeben Bytes aus den einzelnen Chunks eines IChunkReader nimmt.
private static class ChunkConnectionAdapter.ChunkOutputStream
          Private Implementierung eines OutputStream, welcher die durch #write() uebergeben Bytes als Chunk mit Hilfe eines IChunkWriter sendet.
 
Field Summary
private static byte DATA_PACKET
          Konstante um anzuzeigen, das ein Paket nicht das Ende des Stroms signalisiert
private static byte EOF_PACKET
          Konstante um anzuzeigen, das ein Paket das letzte uebertragene Paket darstellt
private  ChunkConnectionAdapter.ChunkInputStream m_inputstream
          Die Eingabestrom der Verbindung
private  ChunkConnectionAdapter.ChunkOutputStream m_outputstream
          Der Ausgabestrom der Verbindung
private  IChunkConnection m_underliningConnection
          Die Basisverbindung, welche zur Uebertragung der eigentlichen Daten genutzt wird
private static int StreamState_CLOSE
          Der Strom ist geschlossen
private static int StreamState_EOF
          Der Strom wird nach Bearbeitung des letzten Bytes geschlossen
private static int StreamState_OPEN
          Der Strom ist offen
 
Fields inherited from interface anon.transport.connection.IConnection
ConnectionState_CLOSE, ConnectionState_OPEN
 
Constructor Summary
ChunkConnectionAdapter(IChunkConnection a_underlyingConnection)
          Erstellt einen neuen Adapter auf Basis der uebergebenen IChunkConnection.
 
Method Summary
 void close()
          Schliesst die Verbindung in dem nacheinander der Ein- und Ausgabestrom geschlossen werden und abschliessend die zugrundelegende Verbindung.
 int getCurrentState()
          Liefert den Status der zugrundeliegenen Connection
 java.io.InputStream getInputStream()
          Liefert den Eingabestrom der Verbinundung, ueber welchen kontinuierlich Daten empfangen werden koennen.
 IAddress getLocalAddress()
          Liefert die direkt die Adesse der zugrundeliegenen Verbindung zurueck.
 java.io.OutputStream getOutputStream()
          Liefert den Ausgabestrom der verbindung, ueber welchem Daten gesendet werden koennen.
 IAddress getRemoteAddress()
          Liefert die direkt die Adesse der zugrundeliegenen Verbindung zurueck.
 int getTimeout()
          Ermittelt den momentanen Wert fuer das Timeout in Millisekunden fuer Lese- und Schreiboperationen der Verbindung.
 void setTimeout(int value)
          Setzt den Timeout in Millisekunden fuer die Lese- und Schreiboperationen der Verbindung.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

StreamState_OPEN

private static final int StreamState_OPEN
Der Strom ist offen

See Also:
Constant Field Values

StreamState_EOF

private static final int StreamState_EOF
Der Strom wird nach Bearbeitung des letzten Bytes geschlossen

See Also:
Constant Field Values

StreamState_CLOSE

private static final int StreamState_CLOSE
Der Strom ist geschlossen

See Also:
Constant Field Values

DATA_PACKET

private static final byte DATA_PACKET
Konstante um anzuzeigen, das ein Paket nicht das Ende des Stroms signalisiert

See Also:
Constant Field Values

EOF_PACKET

private static final byte EOF_PACKET
Konstante um anzuzeigen, das ein Paket das letzte uebertragene Paket darstellt

See Also:
Constant Field Values

m_underliningConnection

private IChunkConnection m_underliningConnection
Die Basisverbindung, welche zur Uebertragung der eigentlichen Daten genutzt wird


m_inputstream

private ChunkConnectionAdapter.ChunkInputStream m_inputstream
Die Eingabestrom der Verbindung


m_outputstream

private ChunkConnectionAdapter.ChunkOutputStream m_outputstream
Der Ausgabestrom der Verbindung

Constructor Detail

ChunkConnectionAdapter

public ChunkConnectionAdapter(IChunkConnection a_underlyingConnection)
Erstellt einen neuen Adapter auf Basis der uebergebenen IChunkConnection.

Method Detail

getInputStream

public java.io.InputStream getInputStream()
Description copied from interface: IStreamConnection
Liefert den Eingabestrom der Verbinundung, ueber welchen kontinuierlich Daten empfangen werden koennen. Sofern sich der Zustand der Verbindung nicht aendert, sollte diese Methode immer das selbe Objekt zurueckgeben.

Specified by:
getInputStream in interface IStreamConnection

getOutputStream

public java.io.OutputStream getOutputStream()
Description copied from interface: IStreamConnection
Liefert den Ausgabestrom der verbindung, ueber welchem Daten gesendet werden koennen. Sofern sich der Zustand der Verbindung nicht aendert, sollte diese Methode immer das selbe Objekt zurueckgeben.

Specified by:
getOutputStream in interface IStreamConnection

getCurrentState

public int getCurrentState()
Liefert den Status der zugrundeliegenen Connection

Specified by:
getCurrentState in interface IConnection

getLocalAddress

public IAddress getLocalAddress()
Liefert die direkt die Adesse der zugrundeliegenen Verbindung zurueck.

Specified by:
getLocalAddress in interface IConnection

getRemoteAddress

public IAddress getRemoteAddress()
Liefert die direkt die Adesse der zugrundeliegenen Verbindung zurueck.

Specified by:
getRemoteAddress in interface IConnection

getTimeout

public int getTimeout()
               throws ConnectionException
Description copied from interface: IConnection
Ermittelt den momentanen Wert fuer das Timeout in Millisekunden fuer Lese- und Schreiboperationen der Verbindung. Der Definition von Socket folgend, bestimmt 0 ein unendliches Timeout.

Specified by:
getTimeout in interface IConnection
Throws:
ConnectionException - Wird geworfen, wenn der Wert nicht ermittelt werden kann.

setTimeout

public void setTimeout(int value)
                throws ConnectionException
Description copied from interface: IConnection
Setzt den Timeout in Millisekunden fuer die Lese- und Schreiboperationen der Verbindung. Der Definition von Socket folgend, bestimmt 0 ein unendliches Timeout.

Specified by:
setTimeout in interface IConnection
Throws:
ConnectionException - Wird geworfen, wenn das setzen des TimeOut nicht moegliche war. Insbesondere kann durch eine UnsuportedCommandException Ausnahme angegben werde, das das setzen generell nicht moeglich ist.

close

public void close()
           throws java.io.IOException
Schliesst die Verbindung in dem nacheinander der Ein- und Ausgabestrom geschlossen werden und abschliessend die zugrundelegende Verbindung.

Specified by:
close in interface IConnection
Throws:
java.io.IOException