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
. IfdstItem
isnullptr
, 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.