| Index: chromeos/components/tether/tether_host_response_recorder.h
|
| diff --git a/chromeos/components/tether/tether_host_response_recorder.h b/chromeos/components/tether/tether_host_response_recorder.h
|
| index f87dd936ccc7777b3ef6aa67c41d0b0069739955..07d6b39db8065d37dcee73a71b9af3bee8901377 100644
|
| --- a/chromeos/components/tether/tether_host_response_recorder.h
|
| +++ b/chromeos/components/tether/tether_host_response_recorder.h
|
| @@ -9,6 +9,7 @@
|
| #include <vector>
|
|
|
| #include "base/macros.h"
|
| +#include "base/observer_list.h"
|
| #include "components/cryptauth/remote_device.h"
|
|
|
| class PrefService;
|
| @@ -24,15 +25,23 @@ namespace tether {
|
| // Responses can be retrieved at a later time via getter methods.
|
| class TetherHostResponseRecorder {
|
| public:
|
| - // Note: The PrefService* passed here must be created using the same registry
|
| - // passed to RegisterPrefs().
|
| - TetherHostResponseRecorder(PrefService* pref_service);
|
| - virtual ~TetherHostResponseRecorder();
|
| + class Observer {
|
| + public:
|
| + virtual void OnPreviouslyConnectedHostIdsChanged() = 0;
|
| + };
|
|
|
| // Registers the prefs used by this class to |registry|. Must be called before
|
| // this class is utilized.
|
| static void RegisterPrefs(PrefRegistrySimple* registry);
|
|
|
| + // Note: The PrefService* passed here must be created using the same registry
|
| + // passed to RegisterPrefs().
|
| + explicit TetherHostResponseRecorder(PrefService* pref_service);
|
| + virtual ~TetherHostResponseRecorder();
|
| +
|
| + void AddObserver(Observer* observer);
|
| + void RemoveObserver(Observer* observer);
|
| +
|
| // Records a TetherAvailabilityResponse. This function should be called each
|
| // time that a response is received from a potential host, even if a
|
| // connection is not started.
|
| @@ -59,13 +68,18 @@ class TetherHostResponseRecorder {
|
| // end of the list.
|
| virtual std::vector<std::string> GetPreviouslyConnectedHostIds() const;
|
|
|
| + protected:
|
| + void NotifyObserversPreviouslyConnectedHostIdsChanged();
|
| +
|
| private:
|
| - void AddRecentResponse(const std::string& device_id,
|
| + // Returns whether the list was changed due to adding the response.
|
| + bool AddRecentResponse(const std::string& device_id,
|
| const std::string& pref_name);
|
| std::vector<std::string> GetDeviceIdsForPref(
|
| const std::string& pref_name) const;
|
|
|
| PrefService* pref_service_;
|
| + base::ObserverList<Observer> observer_list_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(TetherHostResponseRecorder);
|
| };
|
|
|