buffet: XmppChannel listens for connectivity changes

ShillClent provides notifications for network changes.
XmppChannel issue XMPP ping on every network change and restart if
failed. Only exception is soon scheduled upcoming reconnect.

BUG=brillo:1139
TEST=register device, disconnect network, wait device is offline in
     GCD dashboard, connect network.
     Dashboard should show device as online in less then 60 seconds.

Change-Id: I73dffc54400777b2325c26fb8aaf259b515174ce
Reviewed-on: https://chromium-review.googlesource.com/281413
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/manager.h b/buffet/manager.h
index 4cee9cc..17613c4 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -5,8 +5,8 @@
 #ifndef BUFFET_MANAGER_H_
 #define BUFFET_MANAGER_H_
 
-#include <map>
 #include <memory>
+#include <set>
 #include <string>
 #include <vector>
 
@@ -61,6 +61,7 @@
     base::FilePath state_path;
     base::FilePath test_definitions_path;
     bool xmpp_enabled{true};
+    std::set<std::string> device_whitelist;
     privetd::Manager::Options privet;
   };
 
@@ -137,6 +138,7 @@
   std::shared_ptr<StateManager> state_manager_;
   std::unique_ptr<DeviceRegistrationInfo> device_info_;
   std::unique_ptr<BaseApiHandler> base_api_handler_;
+  std::unique_ptr<privetd::ShillClient> shill_client_;
   std::unique_ptr<privetd::Manager> privet_;
 
   base::WeakPtrFactory<Manager> weak_ptr_factory_{this};