carb::dictionary::overwriteOriginalWithArrayHandling

Defined in carb/dictionary/DictionaryUtils.h

inline UpdateAction carb::dictionary::overwriteOriginalWithArrayHandling(const Item *dstItem, ItemType dstItemType, const Item *srcItem, ItemType srcItemType, void *dictionaryInterface)

Helper function for IDictionary::update() that ensures arrays are properly overwritten.

Remark

This is intended to be used as the OnUpdateItemFn callback function for the IDictionary::update() function when the handling of merging array items is potentially needed. When this is used, the IDictionary interface object must be passed into the userData parameter of IDictionary::update().

Thread Safety

This operation is thread safe. However, this call isn’t expected to be used directly, but rather through the IDictionary::update() function. The overall thread safety of that operation should be noted instead.

Parameters
  • dstItem[in] The destination dictionary item for the merge operation. This may be nullptr if the destination item doesn’t already exist in the tree (ie: a new item is being merged into the tree).

  • dstItemType[in] The data type of the item dstItem. If dstItem is nullptr, this will be ItemType::eCount.

  • srcItem[in] The source dictionary item for the merge operation. This will never be nullptr. This will be the new value or node that is being merged into the dictionary tree.

  • srcItemType[in] The data type of the item srcItem.

  • dictionaryInterface[in] The IDictionary interface to use when merging the new item into the dictionary tree. This is expected to be passed into the userData parameter for IDictionary::update().

Returns

an UpdateAction value indicating how the merge operation should proceed.