Move immediate connection notification logic into Dispatcher.

This prevents a race condition that could result in out of order
notifications.
This commit is contained in:
Peter Johnson
2017-09-30 23:37:02 -07:00
parent e4a8bff70e
commit e68a71022c
6 changed files with 48 additions and 14 deletions

View File

@@ -20,6 +20,9 @@ class IConnectionNotifier {
IConnectionNotifier(const IConnectionNotifier&) = delete;
IConnectionNotifier& operator=(const IConnectionNotifier&) = delete;
virtual ~IConnectionNotifier() = default;
virtual unsigned int Add(
std::function<void(const ConnectionNotification& event)> callback) = 0;
virtual unsigned int AddPolled(unsigned int poller_uid) = 0;
virtual void NotifyConnection(bool connected, const ConnectionInfo& conn_info,
unsigned int only_listener = UINT_MAX) = 0;
};