private static class SkypeConnection.SkypeReader extends java.lang.Object implements IChunkReader
IChunkReader welcher speziell auf die Eigenheiten
der Skype Verbindung zugeschnitten ist.
Da weder Skype noch Skype4Java einen gepufferten Empfang von Nachrichen
unterstuetzen, erzeugt die Implementierung intern eine Instanz eines
QueuedChunkReader um diesen asynchron von Skype fuellen zulassen.
| Modifier and Type | Field and Description |
|---|---|
private com.skype.Stream |
m_appStream
Das Skype Stream Object, welches den Kanal ueber Skype
repraesentiert.
|
private QueuedChunkReader |
m_baseReader
Der eigentliche Reader, welcher den gepufferten Empfang und die
Auslieferung von Chunks umsetzt.
|
private com.skype.StreamListener |
m_listner
Der Listner fuer ankommende Nachrichten
|
private ObjectQueue |
m_readBuffer
Der Empfangspuffer
|
static int |
MAX_MESSAGE_LENGTH
Die maximal Laenge einer Nachricht, wie sie ueber Skype verschickt
werden darf.
|
| Constructor and Description |
|---|
SkypeReader(com.skype.Stream a_appStream)
Erstellt einen neuen reader auf Basis des uebergeben Skype Stream
|
| Modifier and Type | Method and Description |
|---|---|
int |
availableChunks()
Gibt aufschluss darueber, wieviele Chunks gelesen werden koennen, ohne das
der Aufruf von
IChunkReader.readChunk() blockiert. |
void |
close()
Entfernt den Listener und schliesst den internen Reader.
|
byte[] |
readChunk()
Gibt den aeltesten (im Sinne des Einfuegens in den Kanal) der im Kanal
befindlichen Chunks zurueck.
|
void |
tearDown()
Entfernt den Listener und faehrt den internen Reader runter.
|
public static final int MAX_MESSAGE_LENGTH
Application_to_application_commands,
Constant Field Valuesprivate ObjectQueue m_readBuffer
private com.skype.Stream m_appStream
private com.skype.StreamListener m_listner
private QueuedChunkReader m_baseReader
public SkypeReader(com.skype.Stream a_appStream)
a_appStream - Der Skype Strom, welcher als Datenkanal genutzt werden soll.public int availableChunks()
throws ConnectionException
IChunkReaderIChunkReader.readChunk() blockiert.
Der Wert dieser Methode sollte nicht schrumpfen, sofern kein lesender Zugriff auf den Kanal erfolgt.
availableChunks in interface IChunkReaderConnectionExceptionpublic byte[] readChunk()
throws ConnectionException
IChunkReaderEvtl. Fehler oder unzulaessige Zustaende des Kanals koennen durch entsprechende Ausnahmen angezeigt werden.
readChunk in interface IChunkReadernull ist nicht zulaessig und ein Rueckgabewert von
byte[0] sollte vermieden werden.ConnectionExceptionpublic void close()
throws java.io.IOException
close in interface IChunkReaderjava.io.IOExceptionpublic void tearDown()
throws java.io.IOException
java.io.IOExceptionCopyright © 2023. All rights reserved.