choice-Klasse
Ein choice-Meldungsblock ist ein Block mit mehreren Quellen und einem einzelnen Ziel, der eine Befehlsflussinteraktion zwischen mehreren Quellen darstellt. Der Auswahlblock wartet, bis eine von mehreren Quellen eine Meldung erzeugt, und gibt den Index der Quelle weiter, die die Meldung erzeugt hat.
template<
class _Type
>
class choice: public ISource<size_t>;
Parameter
- _Type
Ein tuple-basierter Typ, der die Nutzlasten der Eingabequellen darstellt.
Member
Öffentliche Typedefs
Name |
Beschreibungen |
---|---|
type |
Ein Typalias für _Type. |
Öffentliche Konstruktoren
Name |
Beschreibungen |
---|---|
Überladen. Erstellt einen choice-Meldungsblock. |
|
Zerstört den choice-Meldungsblock. |
Öffentliche Methoden
Name |
Beschreibungen |
---|---|
Akzeptiert eine Meldung, die von diesem choice-Block angeboten wurde, und überträgt den Besitz an den Aufrufer. |
|
Ruft eine Verweisanzahl für diesen choice-Meldungsblock ab, um das Löschen zu verhindern. |
|
Nimmt eine Meldung an, die zuvor von diesem choice-Meldungsblock angeboten und vom Ziel erfolgreich reserviert wurde, und überträgt den Besitz an den Aufrufer. |
|
Überprüft, ob dieser choice-Meldungsblock bereits mit einem Wert initialisiert wurde. |
|
Gibt einen Index in das tuple zurück, der das mit dem choice-Meldungsblock ausgewählte Element darstellt. |
|
Verknüpft einen Zielblock mit diesem choice-Meldungsblock. |
|
Gibt die Reservierung einer vorherigen erfolgreichen Meldung frei. |
|
Gibt auf diesem choice-Meldungsblock einen Verweiszähler frei. |
|
Reserviert eine Meldung, die zuvor von diesem choice-Meldungsblock angeboten wurde. |
|
Hebt die Verknüpfung eines Zielblocks mit diesem choice-Meldungsblock auf. |
|
Hebt die Verknüpfung aller Ziele mit diesem choice-Meldungsblock auf. (Überschreibt ISource::unlink_targets.) |
|
Ruft die Meldung ab, deren Index vom choice-Meldungsblock ausgewählt wurde. |
Hinweise
Der Auswahlblock stellt sicher, dass nur eine der eingehenden Nachrichten verarbeitet wird.
Weitere Informationen finden Sie unter Asynchrone Nachrichtenblöcke.
Vererbungshierarchie
Anforderungen
Header: agents.h
Namespace: Concurrency