public class TelegramQueue<Telegram extends QueueableTelegram>
extends java.lang.Object
Telegramme können mit der Methode put(Telegram)
gespeichert werden und mit der Methode take()
wieder ausgelesen werden. Die Methoden
blockieren, wenn beim Speichern nicht genügend Platz vorhanden ist, bzw., wenn beim Auslesen kein Telegramm mehr zur Verfügung steht. Der Methode
close()
dient zum Schließen der Queue. blockiert keine der beiden Methoden mehr.
Constructor and Description |
---|
TelegramQueue(int capacity,
int maximumPriority)
Erzeugt eine neue Queue mit den angegebenen Eigenschaften.
|
Modifier and Type | Method and Description |
---|---|
void |
abort()
Diese Methode schließt die Verbindung und löscht alle noch gespeicherten Telegramme.
|
void |
close()
Diese Methode schließt die Verbindung.
|
int |
getCapacity()
Bestimmt die maximale Gesamtgröße für zwischengespeicherte Telegramme.
|
int |
getSize()
Bestimmt die Gesamtgröße der aktuell zwischengespeicherten Telegramme.
|
void |
put(Telegram telegram)
Speichert das angegebene Telegramm in der Queue.
|
Telegram |
take()
Gibt das älteste in der Queue gespeicherte Telegramm mit der höchsten Priorität zurück.
|
int |
takeMultiple(int sizeLimit,
java.util.Collection<Telegram> result)
Gibt die ältesten in der Queue gespeicherten Telegramme zurück, so lange bis die summierte Telegrammlänge das angegebene Limit überschreitet
oder die Queue leer ist.
|
public TelegramQueue(int capacity, int maximumPriority)
capacity
- Maximale Gesamtgröße der gepufferten Telegramme.maximumPriority
- Maximale von Telegrammen verwendete Priorität.public Telegram take() throws java.lang.InterruptedException
null
zurückgegeben.java.lang.InterruptedException
- Wenn der Thread während des Wartens unterbrochen wurde.public int takeMultiple(int sizeLimit, java.util.Collection<Telegram> result) throws java.lang.InterruptedException
sizeLimit
- Anzahl Bytes, die diese Methode versucht mindestens zurückzugeben (solange in der Queue genug Daten da sind)result
- Liste in der die Telegramme zurückgegeben werden. Wird übergeben, damit nicht ständig eine neue Liste erstellt werden muss.
Die Liste wird beim Aufruf der Methode geleert.java.lang.InterruptedException
public void put(Telegram telegram) throws java.lang.InterruptedException
telegram
- Das zu speichernde Telegrammjava.lang.InterruptedException
- Wenn der Thread während des Wartens unterbrochen wurde.public int getCapacity()
public int getSize()
public void close()
put(Telegram)
sämtliche weitere zu speichernde Telegramme und die Methode
take()
liefert noch alle bisher gespeicherten Telegramme und danach null
zurück. Eventuell blockierte Threads werden geweckt.public void abort()
put(Telegram)
sämtliche
weitere zu speichernde Telegramme und die Methode take()
liefert anschließend immer null
zurück. Eventuell blockierte Threads
werden geweckt.