Skip to content

set_message_tupleSetMessageTupleSetMessageTupleset_message_tupleT_set_message_tuple🔗

Short description🔗

set_message_tupleSetMessageTupleSetMessageTupleset_message_tupleT_set_message_tuple — Add a key/tuple pair to the message.

Signature🔗

set_message_tuple( message MessageHandle, string Key, tuple TupleData )void SetMessageTuple( const HTuple& MessageHandle, const HTuple& Key, const HTuple& TupleData )static void HOperatorSet.SetMessageTuple( HTuple messageHandle, HTuple key, HTuple tupleData )def set_message_tuple( message_handle: HHandle, key: Union[str, int], tuple_data: Sequence[HTupleElementType] ) -> None

Herror T_set_message_tuple( const Htuple MessageHandle, const Htuple Key, const Htuple TupleData )

void HMessage::SetMessageTuple( const HTuple& Key, const HTuple& TupleData ) const

void HMessage::SetMessageTuple( const HString& Key, const HTuple& TupleData ) const

void HMessage::SetMessageTuple( const char* Key, const HTuple& TupleData ) const

void HMessage::SetMessageTuple( const wchar_t* Key, const HTuple& TupleData ) const (Windows only)

void HMessage.SetMessageTuple( HTuple key, HTuple tupleData )

void HMessage.SetMessageTuple( string key, HTuple tupleData )

Description🔗

set_message_tupleSetMessageTuple stores a tuple associated with a key in the message, which behaves as a dictionary-like data container. The message is denoted by the MessageHandlemessageHandlemessage_handle parameter.

TupleDatatupleDatatuple_data including strings is copied by the operation, and can thus be immediately reused. An empty tuple is considered as a valid value that can be associated with the key. If any data (tuple or object) was already associated with given key (Keykeykey), the old data is destroyed by set_message_tupleSetMessageTuple and replaced by TupleDatatupleDatatuple_data.

The Keykeykey has to be a string or an integer. String keys are treated case sensitive.

The tuple data for the given key can be retrieved again from the message using get_message_tupleGetMessageTuple.

Attention🔗

Note that if the tuple contains any handles (which are treated as simple integers) only the handle values are copied by the operation, not the resources behind those handles.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

This operator modifies the state of the following input parameter:

During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.

Parameters🔗

MessageHandlemessageHandlemessage_handle (input_control, state is modified) message → (handle)HTuple (HHandle)HMessage, HTuple (IntPtr)HHandleHtuple (handle)

Message handle.

Number of elements: MessageHandle == 1
Restriction: MessageHandle != 0

Keykeykey (input_control) string → (string / integer)HTuple (HString / Hlong)HTuple (string / int / long)Union[str, int]Htuple (char* / Hlong)

Key string or integer.

Number of elements: Key == 1

TupleDatatupleDatatuple_data (input_control) tuple-array → (string / integer / real / handle)HTuple (HString / Hlong / double / HHandle)HTuple (string / int / long / double / HHandle)Sequence[HTupleElementType]Htuple (char* / Hlong / double / handle)

Tuple value to be associated with the key.

Example🔗

(HDevelop)

create_message (Message)
set_message_tuple (Message, 'simple_integer', 27)
set_message_tuple (Message, 'simple_string', 'Hello world')
set_message_tuple (Message, 'mixed_tuple', ['The answer', 42])

Result🔗

If the operation succeeds, set_message_tupleSetMessageTuple returns 2 (H_MSG_TRUE). Otherwise an exception is raised. Possible error conditions include invalid parameters (handle or key) or resource allocation error.

Combinations with other operators🔗

Combinations

Possible predecessors

create_messageCreateMessage

Possible successors

enqueue_messageEnqueueMessage, set_message_objSetMessageObj

Alternatives

set_message_objSetMessageObj

See also

create_messageCreateMessage, clear_messageClearMessage, get_message_tupleGetMessageTuple, set_message_objSetMessageObj, get_message_objGetMessageObj, set_message_paramSetMessageParam, get_message_paramGetMessageParam, enqueue_messageEnqueueMessage, dequeue_messageDequeueMessage

Module🔗

Foundation