set_message_queue_param
— Setzen von Parametern für eine Warteschlange von Nachrichten.
set_message_queue_param( : : QueueHandle, GenParamName, GenParamValue : )
set_message_queue_param
setzt Parameter für eine
Warteschlange von Nachrichten oder führt Aktionen auf einer solchen
aus.
GenParamName
können mehrere Parameter und Aktionen und in
GenParamValue
die korrespondierenden Werte übergeben
werden. Dabei müssen stets die gleiche Anzahl von Parameternamen
und Werten übergeben werden und die Reihenfolge der Werte muss mit
der der Namen übereinstimmen. Die Parameter und Aktionen werden in
der Reihenfolge abgearbeitet, in der sie in einem Tupel dem
Parameter GenParamName
übergeben wurden. Dabei kann im
Falle von Aktionsparameter der Effekt eines früheren
Aktionsparameters nicht rückgängig gemacht werden, wenn eine spätere
Aktion fehlschlagen sollte.
Folgende Parameternamen werden unterstützt:
Bricht alle dequeue_message
Operator ab, die in beliebigen
Threads auf Nachrichten warten. Die abgebrochenen Aufrufe von
dequeue_message
geben den Fehler H_ERR_MQCNCL zurück. Jeder
weitere zukünftige Aufruf von dequeue_message
kehrt sofort
mit dem Fehler H_ERR_MQCNCL zurück, unabhängig vom Status der
Warteschlange.
Diese Aktion wird typischerweise verwendet bevor die Warteschlange
aufgeräumt wird. Denn es ist nicht erlaubt die Warteschlange über
clear_message_queue
frei zu geben, während sie noch von anderen
Operatoren verwendet wird. Daher ist es in der Regel notwendig,
nach der Aktion 'abort_dequeuing' auf die Beendigung der
Threads zu warten, um sicherzustellen, dass kein Operator das
Warteschlangenobjekt mehr verwenden kann.
Die Aktion wirkt sich jedoch nicht auf die Nachrichtenobjekte aus,
die in der Warteschlange gespeichert sind. Der Effekt, dass auch
alle weiteren Aufruf von dequeue_message
abgebrochen werden,
kann mit Hilfe der Aktion 'restore_queue' wieder aufgehoben
werden.
Der korrespondierende Parameterwert der Aktion muss den Integerwert 1 haben.
Hebt die Auswirkungen einer vorangegangenen 'abort_dequeuing'
Aktion wieder auf. Dies bedeutet, dass der nächste Aufruf von
dequeue_message
wieder Nachrichtenobjekte aus der
Warteschlange empfangen wird.
Der korrespondierende Parameterwert der Aktion muss den Integerwert 1 haben.
Leert die Warteschlange. Alle sich in der Warteschlange befindenden Nachrichten werden aus der Warteschlange entfernt und alle damit verbundenen Ressourcen freigegeben, insbesondere die im Nachrichtenobjekt gespeicherten Tupel und Objektdaten.
Der korrespondierende Parameterwert der Aktion muss den Integerwert 1 haben.
Setzt die maximale Anzahl von Nachrichten, die eine Warteschlange
zu einem Zeitpunkt enthalten kann. Der Aufruf des Operators
enqueue_message
gibt dann den Wert H_ERR_MQOVL zurück, wenn die Warteschlange nach
der Operation mehr Nachrichten enthalten würde als das gesetzte
Maximum.
Das Setzen des Parameters 'max_message_num' hat jedoch keine Auswirkung auf bereits eingereihte Nachrichtenobjekte. D.h. es werden durch diese Aktion keine Nachrichten aus der Warteschlange entfernt.
Der Parameterwert in GenParamValue
kann ein positiver
Integerwert oder -1 sein, falls die Größe der Warteschlange
nicht limitiert sein soll (default). Der String 'infinite'
wird ebenfalls akzeptiert.
QueueHandle
(input_control) message_queue →
(handle)
Warteschlangenobjekt.
Parameteranzahl: QueueHandle == 1
Restriktion: QueueHandle != 0
GenParamName
(input_control) string(-array) →
(string)
Namen der Parameter oder Aktionen.
Parameteranzahl: GenParamName == GenParamValue
Defaultwert: 'max_message_num'
Werteliste: 'abort_dequeuing' , 'flush_queue' , 'max_message_num' , 'restore_queue'
GenParamValue
(input_control) tuple(-array) →
(string / integer / real)
Werte zu den Parameternamen oder Aktionen.
Parameteranzahl: GenParamName == GenParamValue
Defaultwert: 1
Wertevorschläge: 1, -1
* abort waiting dequeue_message operators set_message_queue_param (Queue, 'abort_dequeuing', 1)
Im Erfolgsfall gibt set_message_queue_param
den Wert 2 (H_MSG_TRUE)
zurück. Andernfalls wird eine Fehlerbehandlung durchgeführt.
create_message_queue
,
clear_message_queue
,
enqueue_message
,
dequeue_message
,
get_message_queue_param
,
create_message
,
clear_message
,
set_message_tuple
,
get_message_tuple
,
set_message_obj
,
get_message_obj
Foundation