ClassesClassesClassesClasses | | | | Operators

set_message_queue_paramset_message_queue_paramSetMessageQueueParamset_message_queue_paramSetMessageQueueParamSetMessageQueueParam (Operator)

Name

set_message_queue_paramset_message_queue_paramSetMessageQueueParamset_message_queue_paramSetMessageQueueParamSetMessageQueueParam — Set message queue parameters or invokes commands on the queue.

Signature

set_message_queue_param( : : QueueHandle, GenParamName, GenParamValue : )

Herror set_message_queue_param(const Hlong QueueHandle, const char* GenParamName, const char* GenParamValue)

Herror T_set_message_queue_param(const Htuple QueueHandle, const Htuple GenParamName, const Htuple GenParamValue)

Herror set_message_queue_param(const HTuple& QueueHandle, const HTuple& GenParamName, const HTuple& GenParamValue)

void HMessageQueue::SetMessageQueueParam(const HTuple& GenParamName, const HTuple& GenParamValue) const

void SetMessageQueueParam(const HTuple& QueueHandle, const HTuple& GenParamName, const HTuple& GenParamValue)

void HMessageQueue::SetMessageQueueParam(const HTuple& GenParamName, const HTuple& GenParamValue) const

void HMessageQueue::SetMessageQueueParam(const HString& GenParamName, const HTuple& GenParamValue) const

void HMessageQueue::SetMessageQueueParam(const char* GenParamName, const HTuple& GenParamValue) const

void HOperatorSetX.SetMessageQueueParam(
[in] VARIANT QueueHandle, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

void HMessageQueueX.SetMessageQueueParam(
[in] VARIANT GenParamName, [in] VARIANT GenParamValue)

static void HOperatorSet.SetMessageQueueParam(HTuple queueHandle, HTuple genParamName, HTuple genParamValue)

void HMessageQueue.SetMessageQueueParam(HTuple genParamName, HTuple genParamValue)

void HMessageQueue.SetMessageQueueParam(string genParamName, HTuple genParamValue)

Description

set_message_queue_paramset_message_queue_paramSetMessageQueueParamset_message_queue_paramSetMessageQueueParamSetMessageQueueParam sets message queue parameters or invokes action commands on the queue.

Multiple parameters and action commands can be passed through a single set_message_queue_paramset_message_queue_paramSetMessageQueueParamset_message_queue_paramSetMessageQueueParamSetMessageQueueParam call, passing multiple parameter names in a tuple GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName and corresponding values in GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue. There must be always the same number of names and values and the values must be in the same order as the names. The parameters and action commands are applied in the same order passed in GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName. It is important to understand that in particular in case of the action commands, it might not be possible to revert the effect of previous action commands if a latter command fails, the caller therefore might need to be careful when setting multiple commands in a single call.

Currently supported parameter names are:

'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing":

Aborts any dequeue_messagedequeue_messageDequeueMessagedequeue_messageDequeueMessageDequeueMessage operator waiting in any thread for data to be delivered. Any currently waiting call will unblock and return H_ERR_MQCNCL. Any dequeue_messagedequeue_messageDequeueMessagedequeue_messageDequeueMessageDequeueMessage call invoked in future will return H_ERR_MQCNCL immediately regardless of the queue status.

This command is typically needed for cleanup when any threads using the message queue and possibly blocked in dequeue_messagedequeue_messageDequeueMessagedequeue_messageDequeueMessageDequeueMessage must be released, because it is not allowed to destroy the queue (clear_message_queueclear_message_queueClearMessageQueueclear_message_queueClearMessageQueueClearMessageQueue) while any operators might still use it. It might be necessary to wait for completion of those threads after invoking the 'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing" command to be sure any operators using the queue are completed.

The message data currently stored in the message queue is not affected by the command. The effect of canceling any further 'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing" calls can be reset again using the 'restore_queue'"restore_queue""restore_queue""restore_queue""restore_queue""restore_queue" command.

The parameter value must be integer 1.

'restore_queue'"restore_queue""restore_queue""restore_queue""restore_queue""restore_queue":

Clears effect of a previous 'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing" command. This means the next call to dequeue_messagedequeue_messageDequeueMessagedequeue_messageDequeueMessageDequeueMessage will again attempt to deliver message data.

The parameter value must be integer 1.

'flush_queue'"flush_queue""flush_queue""flush_queue""flush_queue""flush_queue":

Flushes the queue. All currently enqueued messages are removed from the queue and all associated resources, in particular the tuple or object data stored in the messages, are released.

The parameter value must be integer 1.

'max_message_num'"max_message_num""max_message_num""max_message_num""max_message_num""max_message_num":

Sets the maximum number of messages that can be stored in the queue. The enqueue_messageenqueue_messageEnqueueMessageenqueue_messageEnqueueMessageEnqueueMessage operator call would fail (H_ERR_MQOVL) if the queue would contain more messages after the operation than the defined maximum.

Setting the 'max_message_num'"max_message_num""max_message_num""max_message_num""max_message_num""max_message_num" parameter has no effect on the messages already present in the queue. No messages that are already in the queue can be removed by this operation.

The parameter value can be a positive integer or -1 if the queue size should be unlimited. String value 'infinite'"infinite""infinite""infinite""infinite""infinite" is accepted as well. The queue size is unlimited by default.

Parallelization

Parameters

QueueHandleQueueHandleQueueHandleQueueHandleQueueHandlequeueHandle (input_control)  message_queue HMessageQueue, HTupleHTupleHMessageQueue, HTupleHMessageQueueX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Message queue handle.

Number of elements: QueueHandle == 1

Restriction: QueueHandle != 0

GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Names of the queue parameters or action commands.

Number of elements: GenParamName == GenParamValue

Default value: 'max_message_num' "max_message_num" "max_message_num" "max_message_num" "max_message_num" "max_message_num"

List of values: 'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing", 'flush_queue'"flush_queue""flush_queue""flush_queue""flush_queue""flush_queue", 'max_message_num'"max_message_num""max_message_num""max_message_num""max_message_num""max_message_num", 'restore_queue'"restore_queue""restore_queue""restore_queue""restore_queue""restore_queue"

GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  tuple(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Values of the queue parameters or action commands.

Number of elements: GenParamName == GenParamValue

Default value: 1

List of values: 1, -1

Example (HDevelop)

* abort waiting dequeue_message operators
set_message_queue_param (Queue, 'abort_dequeuing', 1)

Result

If all the operator parameters and their values are valid, set_message_queue_paramset_message_queue_paramSetMessageQueueParamset_message_queue_paramSetMessageQueueParamSetMessageQueueParam returns 2 (H_MSG_TRUE). Otherwise an exception is raised.

Possible Predecessors

create_message_queuecreate_message_queueCreateMessageQueuecreate_message_queueCreateMessageQueueCreateMessageQueue

Possible Successors

clear_message_queueclear_message_queueClearMessageQueueclear_message_queueClearMessageQueueClearMessageQueue

See also

create_message_queuecreate_message_queueCreateMessageQueuecreate_message_queueCreateMessageQueueCreateMessageQueue, clear_message_queueclear_message_queueClearMessageQueueclear_message_queueClearMessageQueueClearMessageQueue, enqueue_messageenqueue_messageEnqueueMessageenqueue_messageEnqueueMessageEnqueueMessage, dequeue_messagedequeue_messageDequeueMessagedequeue_messageDequeueMessageDequeueMessage, get_message_queue_paramget_message_queue_paramGetMessageQueueParamget_message_queue_paramGetMessageQueueParamGetMessageQueueParam, create_messagecreate_messageCreateMessagecreate_messageCreateMessageCreateMessage, clear_messageclear_messageClearMessageclear_messageClearMessageClearMessage, set_message_tupleset_message_tupleSetMessageTupleset_message_tupleSetMessageTupleSetMessageTuple, get_message_tupleget_message_tupleGetMessageTupleget_message_tupleGetMessageTupleGetMessageTuple, set_message_objset_message_objSetMessageObjset_message_objSetMessageObjSetMessageObj, get_message_objget_message_objGetMessageObjget_message_objGetMessageObjGetMessageObj

Module

Foundation


ClassesClassesClassesClasses | | | | Operators