Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: chromeos/components/tether/active_host.h

Issue 2741253002: [CrOS Tether] Create KeepAliveScheduler, a class which schedules keep-alive tickles to be sent to a… (Closed)
Patch Set: Added tests for other modified files. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/components/tether/active_host.h
diff --git a/chromeos/components/tether/active_host.h b/chromeos/components/tether/active_host.h
index 3e8e8cb69405bcb5bed9fa513973b10312e699cf..5ec79941559dbdb00d75fbef4cf40a790cf332fa 100644
--- a/chromeos/components/tether/active_host.h
+++ b/chromeos/components/tether/active_host.h
@@ -10,6 +10,7 @@
#include "base/callback.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
+#include "base/observer_list.h"
class PrefRegistrySimple;
class PrefService;
@@ -36,6 +37,14 @@ class ActiveHost {
CONNECTED = 2
};
+ class Observer {
+ public:
+ virtual void OnActiveHostChanged(
+ ActiveHostStatus active_host_status,
+ std::unique_ptr<cryptauth::RemoteDevice> active_host_device,
+ const std::string& wifi_network_id) = 0;
+ };
+
ActiveHost(TetherHostFetcher* tether_host_fetcher, PrefService* pref_service);
virtual ~ActiveHost();
@@ -44,18 +53,19 @@ class ActiveHost {
// Sets the active host to be no host at all (i.e., the local device is not
// connecting or connected to a tether host).
- void SetActiveHostDisconnected();
+ virtual void SetActiveHostDisconnected();
// Sets the active host to be the device with ID |active_host_device_id| and
// records that the there is an active attempt to connect to that host (i.e.,
// the host is not yet connected but it is in the process of connecting).
- void SetActiveHostConnecting(const std::string& active_host_device_id);
+ virtual void SetActiveHostConnecting(
+ const std::string& active_host_device_id);
// Sets the active host to be the device with ID |active_host_device_id| and
// that the local device is connected to that device on the mobile hotspot
// with Wi-Fi network ID |wifi_network_id|.
- void SetActiveHostConnected(const std::string& active_host_device_id,
- const std::string& wifi_network_id);
+ virtual void SetActiveHostConnected(const std::string& active_host_device_id,
+ const std::string& wifi_network_id);
// Gets the active host and associated metadata asynchronously. If
// the active host status is...
@@ -67,12 +77,21 @@ class ActiveHost {
base::Callback<void(ActiveHostStatus active_host_status,
std::unique_ptr<cryptauth::RemoteDevice> active_host,
const std::string& wifi_network_id)>;
- void GetActiveHost(const ActiveHostCallback& active_host_callback);
+ virtual void GetActiveHost(const ActiveHostCallback& active_host_callback);
// Synchronous getter methods which do not return a full RemoteDevice object.
- ActiveHostStatus GetActiveHostStatus() const;
- const std::string GetActiveHostDeviceId() const;
- const std::string GetWifiNetworkId() const;
+ virtual ActiveHostStatus GetActiveHostStatus() const;
+ virtual std::string GetActiveHostDeviceId() const;
+ virtual std::string GetWifiNetworkId() const;
+
+ void AddObserver(Observer* observer);
+ void RemoveObserver(Observer* observer);
+
+ protected:
+ void SendActiveHostChangedUpdate(
+ ActiveHostStatus active_host_status,
+ std::unique_ptr<cryptauth::RemoteDevice> active_host,
+ const std::string& wifi_network_id);
private:
void SetActiveHost(ActiveHostStatus active_host_status,
@@ -86,6 +105,8 @@ class ActiveHost {
TetherHostFetcher* tether_host_fetcher_;
PrefService* pref_service_;
+ base::ObserverList<Observer> observer_list_;
+
base::WeakPtrFactory<ActiveHost> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(ActiveHost);

Powered by Google App Engine
This is Rietveld 408576698