Add signal for batches of property changes on Individuals
Submitted by Patrick Ohly
Link to original bug (#684766)
Description
For the PIM Manager D-Bus API (http://permalink.gmane.org/gmane.comp.mobile.syncevolution/4009) it would be useful if FolksIndividualAggregator told its user whether it has pending changes.
The PIM Manager maps local signals to D-Bus signals. To reduce D-Bus traffic, it delays sending out changes immediately. But then it needs to know at which point it should flush the pending changes. Doing it each time FolksIndividualAggregator enters 'is-quiesent == True' state would be a good point.
However, right now that only happens once. Later is-quiesent remains True even though changes from the underlying stores come in.
As a workaround, PIM Manager now delays until the process is idle. But that is sub-optimal because there is no guarantee that all processing really happens before going idle. For example, it was observed that "notify" for a FolksIndividual was triggered several times (too often in fact, see bug #684764), then the idle callback was invoked, then another "notify" was triggered.
Using a timeout also isn't nice because it adds unnecessary and undesirable latency.
Version: git master