Weave:: Profiles:: DataManagement_Current:: CommandSender:: SynchronizedTraitState
Note:This class helps inform if an associated TraitDataSink has caught up to all the side-effects of a command. The CommandSender class is responsible for filling in the requisite information necessary at the time of request transmission and response reception. The application can use this in one of two modalities: a) Have a valid data version in the data sink before starting to send commands b) Never having a valid data version before starting to send commands.
In the former case, the version of the sink prior to sending the command is known, allowing for an accurate later inference of whether the sink has caught up.
In the latter case, the absence of a prior version results in the logic to infer synchronization reverting to a window-based heuristic. This is due to the presence of randomized data versions that can result in the received data version from the publisher jumping to a lower number post command reception.
bool HasDataCaughtUp( void )