set_message_tupleT_set_message_tupleSetMessageTupleSetMessageTupleset_message_tuple (算子)

名称

set_message_tupleT_set_message_tupleSetMessageTupleSetMessageTupleset_message_tuple — 在消息中添加一个键/元组对。

签名

set_message_tuple( : : MessageHandle, Key, TupleData : )

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

void SetMessageTuple(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)

static void HOperatorSet.SetMessageTuple(HTuple messageHandle, HTuple key, HTuple tupleData)

void HMessage.SetMessageTuple(HTuple key, HTuple tupleData)

void HMessage.SetMessageTuple(string key, HTuple tupleData)

def set_message_tuple(message_handle: HHandle, key: Union[str, int], tuple_data: Sequence[HTupleElementType]) -> None

描述

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

模块

基础