|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.sys.funclib.communicationStreams.StreamDemultiplexer.DemultiplexerStreaminformations
private static class StreamDemultiplexer.DemultiplexerStreaminformations
Diese Objekt beinhaltet alle Informationen, die für einen Stream, auf Empfängerseite, wichtig sind. Diese Objekte werden in einem Array (Index des Arrays ist dabei gleich der Nummer des Stream) gespeichert. Somit können alle Inforamtionen zu einem Stream mit einem Arrayzugriff geholt werden
Field Summary | |
---|---|
private UnboundedQueue |
_bigDataPacketQueue
In dieser Queue werden die großen Nutzdatenpakete gespeichert. |
private boolean |
_endStream
Wenn der Sender keine Nutzdaten mehr für den Empfänger hat, dann wird der Stream beendet (dies sollte der Normalfall sein). |
private int |
_indexOfStream
|
private boolean |
_lostConnectionToSender
Bei der Übertragung der Daten ist ein Fehler aufgetreten. |
private int |
_maxStreamPacketIndex
Bis zu welchem Paketindex darf der Sender Pakete versenden |
private int |
_nextPacketIndex
Welchen Paketindex muß das nächste Paket haben. |
private int |
_packetIndexToSendNextMaxTicketIndex
Wann muß das nächste Ticket zum Sender geschickt werden, damit er neue Nutzdatenpakete verschickt |
private UnboundedQueue |
_smallDataPacketQueue
In dieser Queue werden die Nutzdaten gespeichert. |
private boolean |
_streamAborted
Wenn ein Stream mit abort beendet wurde, dann geschieht dies durch den Empfänger (er will keine Nutzdaten mehr). |
private boolean |
_streamTerminated
Bei der Übertragung der Daten ist ein Fehler aufgetreten, entweder wurde ein Nutzdatenpaket doppelt empfangen oder ein Paket fehlt. |
Constructor Summary | |
---|---|
StreamDemultiplexer.DemultiplexerStreaminformations(int indexOfStream,
int packetIndexToSendNextMaxTicketIndex,
int maxStreamPacketIndex)
|
Method Summary | |
---|---|
void |
createUnlockPacket()
Es kann passieren, dass in der _bigDataPacketQueue Threads auf Daten warten (durch den take-Aufruf). |
byte[] |
getData()
Diese Methode stellt die Nutzdaten des Streams zur Verfügung. |
int |
getIndexOfStream()
Index des Streams |
int |
getMaxStreamPacketIndex()
|
int |
getNextPacketIndex()
|
int |
getPacketIndexToSendNextMaxTicketIndex()
|
StreamDemultiplexer.ReferenceDataPacket |
getReferenceDataPacket()
Diese Methode fordert ein Datenpaket des Streams an. |
boolean |
isEndStream()
Wurde der Stream aufgrund fehlender Nutzdaten vom Sender beendet. |
boolean |
isLostConnectionToSender()
Wurde der Stream durch die Empfängerapplikation beendet, weil die physische Verbindung zur Senderapplikation unterbrochen wurde. |
boolean |
isStreamAborted()
Wurde der Stream vom der Empfängerapplikation beendet (aus welchen Gründen auch immer). |
boolean |
isStreamTerminated()
Wurde der Stream durch den Empfänger beendet, weil ein Paket doppelt vorhanden oder gar nicht vorhanden war. |
void |
newDataPacketForStream(StreamDemultiplexer.ReferenceDataPacket dataPacket)
Ein Datenpaket in einem Stream speichern (das Datenpaket muß mit take von der Applikation abgerufen werden, sonst steht es nicht zur Verfügung) |
void |
putDataSmallDataPacketQueue(byte[] data)
Ein Nutzdatenpaket speichern, diese wird dann später an die Empfängerapplikation weiter gegeben. |
void |
setEndStreamTrue()
Der Stream bei einem take Aufruf ein null-Paket zurück geliefert. |
void |
setLostConnectionToSenderTrue()
Da die physische Verbindung zum Sender unterbrochen wurde, und somit keine Nutzdatenpakete mehr ankommen, können die restlichen Nutdaten auch gelöscht werden. |
void |
setMaxStreamPacketIndex(int maxStreamPacketIndex)
|
void |
setNextPacketIndex(int nextPacketIndex)
Der Index des Nutzdatenpakets, das als nächstes erwartet wird, wird hier neu gesetzt. |
void |
setPacketIndexToSendNextMaxTicketIndex(int packetIndexToSendNextMaxTicketIndex)
|
void |
setStreamAbortedTrue()
Der Stream wurde abgebrochen, es kann passieren, dass noch Threads in der _bigDataPacketQueue hängen und auf Daten warten. |
void |
setStreamTerminatedTrue()
Da Fehlerhafte Nutzdatenpakete empfangen wurden, können alle empfangenen Nutzdatenpakete, die sich in der dataQueue befinden, verworfen werden. |
int |
sizeOfDataQueue()
Diese Methode dient zum Debuggen. |
int |
sizeOfSmallDataPacketQueue()
Bestimmt die Größe der Queue, die die Nutzdatenpakete für die Empfängerapplikation speichert. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final int _indexOfStream
private int _packetIndexToSendNextMaxTicketIndex
private int _maxStreamPacketIndex
private int _nextPacketIndex
private final UnboundedQueue _bigDataPacketQueue
private final UnboundedQueue _smallDataPacketQueue
private boolean _endStream
private boolean _streamAborted
private boolean _streamTerminated
private boolean _lostConnectionToSender
Constructor Detail |
---|
public StreamDemultiplexer.DemultiplexerStreaminformations(int indexOfStream, int packetIndexToSendNextMaxTicketIndex, int maxStreamPacketIndex)
Method Detail |
---|
public int getPacketIndexToSendNextMaxTicketIndex()
public void setPacketIndexToSendNextMaxTicketIndex(int packetIndexToSendNextMaxTicketIndex)
public int getMaxStreamPacketIndex()
public void setMaxStreamPacketIndex(int maxStreamPacketIndex)
public int getNextPacketIndex()
public int getIndexOfStream()
public void setNextPacketIndex(int nextPacketIndex)
public StreamDemultiplexer.ReferenceDataPacket getReferenceDataPacket() throws InterruptedException
InterruptedException
- Die Datenstruktur UnboundedQueue kann durch ein Interrupt unterbrochen werdenpublic void newDataPacketForStream(StreamDemultiplexer.ReferenceDataPacket dataPacket)
dataPacket
- Ein Datenpaket (Definition: s.o.)public int sizeOfSmallDataPacketQueue()
public void putDataSmallDataPacketQueue(byte[] data)
data
- Ein Nutzdaten für die Empfängerapplikationpublic byte[] getData() throws InterruptedException
sizeOfSmallDataPacketQueue
).
InterruptedException
public boolean isEndStream()
public boolean isStreamAborted()
public boolean isStreamTerminated()
public boolean isLostConnectionToSender()
public void setEndStreamTrue()
public void setStreamAbortedTrue()
public void setStreamTerminatedTrue()
public void setLostConnectionToSenderTrue()
public void createUnlockPacket()
public int sizeOfDataQueue()
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |