Provide more extensive listener features.

This enables listeners to be notified of not only value updates, but also flag
changes and deletions by using a bitmask to specify what notifications are
desired.  The old API (which only provided a new/not new) flag is still
supported.  This also subsumes the feature to listen to local changes (that's
one of the bitmask options).
This commit is contained in:
Peter Johnson
2015-09-25 11:54:17 -07:00
parent 51064f5e75
commit 90959defd9
17 changed files with 246 additions and 128 deletions

View File

@@ -137,12 +137,11 @@ class NetworkTable : public ITable {
void AddTableListener(ITableListener* listener);
void AddTableListener(ITableListener* listener, bool immediateNotify);
void AddTableListener(ITableListener* listener, bool immediateNotify,
bool localNotify);
void AddTableListenerEx(ITableListener* listener, unsigned int flags);
void AddTableListener(llvm::StringRef key, ITableListener* listener,
bool immediateNotify);
void AddTableListener(llvm::StringRef key, ITableListener* listener,
bool immediateNotify, bool localNotify);
void AddTableListenerEx(llvm::StringRef key, ITableListener* listener,
unsigned int flags);
void AddSubTableListener(ITableListener* listener);
void AddSubTableListener(ITableListener* listener, bool localNotify);
void RemoveTableListener(ITableListener* listener);