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
IChunkReader
IChunkReader.readChunk()
blockiert.
Der Wert dieser Methode sollte nicht schrumpfen, sofern kein lesender Zugriff auf den Kanal erfolgt.
availableChunks
in interface IChunkReader
ConnectionException
public byte[] readChunk() throws ConnectionException
IChunkReader
Evtl. Fehler oder unzulaessige Zustaende des Kanals koennen durch entsprechende Ausnahmen angezeigt werden.
readChunk
in interface IChunkReader
null
ist nicht zulaessig und ein Rueckgabewert von
byte[0]
sollte vermieden werden.ConnectionException
public void close() throws java.io.IOException
close
in interface IChunkReader
java.io.IOException
public void tearDown() throws java.io.IOException
java.io.IOException
Copyright © 2023. All rights reserved.