class IntermediateGraphSolver

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

This solver is able to generate compact notifies that try to only contain the modified bits of data. This leverages a

finitely sized, global dirty store that houses granular dirty information per property handle per trait

instance. When a notify is to be generated, the solver attempts to find the LCA (lowest-common-ancestor) of all the

dirty nodes in the tree and generates a data-element against that path. In addition, it exploits the merge semantics

of WDM to only include child trees of that LCA that contain dirty elements. This is pretty efficient given the

reasonably flat, shallow structure of our IDLs.

If it is unable to store anymore dirty items in the granular store, it will degrade to marking the entire trait

instance as dirty. In addition, if it runs out of space in the merge handle set, it will degrade to including all

child trees of the LCA'ed node.

Public Methods

bool IsPropertyPathSupported (PropertyPathHandle aHandle)
WEAVE_ERROR RetrieveTraitInstanceData (NotifyRequestBuilder * aBuilder, TraitDataHandle aTraitDataHandle, SchemaVersion aSchemaVersion, bool aRetrieveAll)
WEAVE_ERROR SetDirty (TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyHandle)
WEAVE_ERROR DeleteKey (TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyHandle)
WEAVE_ERROR ClearDirty ()

Records