set_message_tupleT_set_message_tupleSetMessageTupleSetMessageTupleset_message_tuple (算子)
名称
set_message_tupleT_set_message_tupleSetMessageTupleSetMessageTupleset_message_tuple — 在消息中添加一个键/元组对。
签名
描述
set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple stores a tuple associated with a key in the
message, which behaves as a dictionary-like data container.
The message is denoted by the MessageHandleMessageHandleMessageHandleMessageHandlemessageHandlemessage_handle parameter.
TupleDataTupleDataTupleDataTupleDatatupleDatatuple_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
(KeyKeyKeyKeykeykey), the old data is destroyed by set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple
and replaced by TupleDataTupleDataTupleDataTupleDatatupleDatatuple_data。
The KeyKeyKeyKeykeykey 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_tupleget_message_tupleGetMessageTupleGetMessageTupleGetMessageTupleget_message_tuple。
注意
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.
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子修改后续输入参数的状态:
在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。
参数
MessageHandleMessageHandleMessageHandleMessageHandlemessageHandlemessage_handle (输入控制,状态被修改) message → HMessage, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Message handle.
元素数量:
MessageHandle == 1
限制:
MessageHandle != 0
KeyKeyKeyKeykeykey (输入控制) string → HTupleUnion[str, int]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Key string or integer.
元素数量:
Key == 1
TupleDataTupleDataTupleDataTupleDatatupleDatatuple_data (输入控制) tuple-array → HTupleSequence[HTupleElementType]HTupleHtuple (string / integer / real / handle) (string / int / long / double / HHandle) (HString / Hlong / double / HHandle) (char* / Hlong / double / handle)
Tuple value to be associated with the key.
示例(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])
结果
If the operation succeeds, set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple 返回 2 ( H_MSG_TRUE )。否则将抛出异常。 Possible error conditions include
invalid parameters (handle or key) or resource allocation error.
可能的前趋
create_messagecreate_messageCreateMessageCreateMessageCreateMessagecreate_message
可能的后继
enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message,
set_message_objset_message_objSetMessageObjSetMessageObjSetMessageObjset_message_obj
替代
set_message_objset_message_objSetMessageObjSetMessageObjSetMessageObjset_message_obj
另见
create_messagecreate_messageCreateMessageCreateMessageCreateMessagecreate_message,
clear_messageclear_messageClearMessageClearMessageClearMessageclear_message,
get_message_tupleget_message_tupleGetMessageTupleGetMessageTupleGetMessageTupleget_message_tuple,
set_message_objset_message_objSetMessageObjSetMessageObjSetMessageObjset_message_obj,
get_message_objget_message_objGetMessageObjGetMessageObjGetMessageObjget_message_obj,
set_message_paramset_message_paramSetMessageParamSetMessageParamSetMessageParamset_message_param,
get_message_paramget_message_paramGetMessageParamGetMessageParamGetMessageParamget_message_param,
enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message,
dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessagedequeue_message
模块
基础