public class PriorityChannel extends Object
| Modifier and Type | Field and Description |
|---|---|
private int |
_capacityPerPriorityClass |
private int |
_count |
private int |
_numberOfPriorityClasses |
private LinkedList[] |
_queues |
| Constructor and Description |
|---|
PriorityChannel(int numberOfPriorityClasses,
int capacityPerPriorityClass)
Legt einen neuen Kommunikationskanal an.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Löscht alle im Kommunikationskanal vorhandenen Nachrichten.
|
boolean |
isEmpty()
Bestimmt, ob der Kommunikationskanal leer ist.
|
boolean |
offer(PriorizedObject item,
long timeout)
Überträgt eine Nachricht in den Kommunikationskanal.
|
PriorizedObject |
poll(long timeout)
Empfängt und entfernt eine Nachricht aus dem Kommunikationskanal.
|
void |
put(PriorizedObject item)
Überträgt eine Nachricht in den Kommunikationskanal.
|
PriorizedObject |
take()
Empfängt und entfernt eine Nachricht aus dem Kommunikationskanal.
|
private final int _numberOfPriorityClasses
private final int _capacityPerPriorityClass
private final LinkedList[] _queues
private int _count
public PriorityChannel(int numberOfPriorityClasses,
int capacityPerPriorityClass)
numberOfPriorityClasses - Anzahl der zu verwendenden Prioritätsklassen. Diese sind von 0 bis
numberOfPriorityClasses-1 durchnummeriert.capacityPerPriorityClass - Maximale Anzahl der pro Prioritätsklasse im Kommunikationskanal gespeicherten
Objekte.public void put(PriorizedObject item) throws InterruptedException
item - Objekt, das in den Kommunikationskanal übertragen werden soll.InterruptedException - Wenn der Thread unterbrochen wurde, während auf freien Platz im Kommunikationskanal
gewartet wurde.public boolean offer(PriorizedObject item, long timeout) throws InterruptedException
item - Objekt, das in den Kommunikationskanal übertragen werden soll.timeout - Zeit in Millisekunden, für die bei vollem Kommunikationskanal maximal auf freien Platz gewartet
wird.InterruptedException - Wenn der Thread unterbrochen wurde, während auf freien Platz im Kommunikationskanal
gewartet wurde.public PriorizedObject take() throws InterruptedException
InterruptedException - Wenn der Thread unterbrochen wurde, während auf Nachrichten gewartet wurde.public PriorizedObject poll(long timeout) throws InterruptedException
timeout - Zeit in Millisekunden, für die bei leerem Kommunikationskanal auf neue Nachrichten gewartet wird.null, wenn nach Ablauf des Timeouts immer noch keine Nachricht im
Kommunikationskanal vorhanden ist.InterruptedException - Wenn der Thread unterbrochen wurde, während auf Nachrichten gewartet wurde.public boolean isEmpty()
true bei leerem Kommunikationskanal, sonst false.public void clear()