class ISetDataDelegate

Defined at line 213 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Profiles/data-management/Current/TraitData.h

While traits can have deep nested structures (which can include dictionaries), application logic is only expected to provide

getters/setters for 'leaf' nodes in the schema. If one can visualize a schema as a tree (a directed graph where you can have

at most one parent for any given node) where branches indicate the presence of a nested structure, then this analogy fits in

quite nicely.

Public Methods

WEAVE_ERROR SetLeafData (PropertyPathHandle aLeafHandle, nl::Weave::TLV::TLVReader & aReader)

Given a path handle to a leaf node and a TLV reader, set the leaf data in the callee.

WEAVE_ERROR SetData (PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, bool aIsNull)

Given a path handle to a node, a TLV reader, and an indication

of whether a null type was received, set the data in the callee.

TDM will only call this function for handles that are nullable,

optional, ephemeral, or leafs. If aHandle is a non-leaf node

and is nullified, TDM will not call SetData for its children.

Parameters

aHandle [in] The PropertyPathHandle in question.
aReader [in] The TLV reader to read from.
aIsNull [out] Is aHandle nullified?
void OnSetDataEvent (SetDataEventType aType, PropertyPathHandle aHandle)

Signals to delegates when notable events occur while parsing dictionaries. In all cases, a property path handle is

provided that provides more context on what this event applies to.

For dictionary replace begin/ends, these handles are purely schema handles.

For dictionary item added/modififed events, these handles are property path handles as they contain the dictionary key as

well.

Enumerations

enum SetDataEventType
Name Value
kSetDataEvent_DictionaryReplaceBegin 0
kSetDataEvent_DictionaryReplaceEnd 1
kSetDataEvent_DictionaryItemModifyBegin 2
kSetDataEvent_DictionaryItemModifyEnd 3

Defined at line 216 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Profiles/data-management/Current/TraitData.h