OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_PROXIMITY_AUTH_CRYPTAUTH_CRYPTAUTH_DEVICE_MANAGER_H | 5 #ifndef COMPONENTS_PROXIMITY_AUTH_CRYPTAUTH_CRYPTAUTH_DEVICE_MANAGER_H |
6 #define COMPONENTS_PROXIMITY_AUTH_CRYPTAUTH_CRYPTAUTH_DEVICE_MANAGER_H | 6 #define COMPONENTS_PROXIMITY_AUTH_CRYPTAUTH_CRYPTAUTH_DEVICE_MANAGER_H |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 base::TimeDelta GetTimeToNextAttempt() const; | 98 base::TimeDelta GetTimeToNextAttempt() const; |
99 | 99 |
100 // Returns true if a device sync attempt is currently in progress. | 100 // Returns true if a device sync attempt is currently in progress. |
101 bool IsSyncInProgress() const; | 101 bool IsSyncInProgress() const; |
102 | 102 |
103 // Returns true if the last device sync failed and the manager is now | 103 // Returns true if the last device sync failed and the manager is now |
104 // scheduling sync attempts more aggressively to recover. If no enrollment | 104 // scheduling sync attempts more aggressively to recover. If no enrollment |
105 // has ever been recorded, then this function will also return true. | 105 // has ever been recorded, then this function will also return true. |
106 bool IsRecoveringFromFailure() const; | 106 bool IsRecoveringFromFailure() const; |
107 | 107 |
| 108 // Returns a list of all remote devices that have been synced. |
| 109 std::vector<cryptauth::ExternalDeviceInfo> GetSyncedDevices() const; |
| 110 |
108 // Returns a list of remote devices that can unlock the user's other devices. | 111 // Returns a list of remote devices that can unlock the user's other devices. |
109 const std::vector<cryptauth::ExternalDeviceInfo>& unlock_keys() const { | 112 std::vector<cryptauth::ExternalDeviceInfo> GetUnlockKeys() const; |
110 return unlock_keys_; | 113 |
111 } | 114 // Returns a list of remote devices that can host tether hotspots. |
| 115 std::vector<cryptauth::ExternalDeviceInfo> GetTetherHosts() const; |
112 | 116 |
113 protected: | 117 protected: |
114 // Creates a new SyncScheduler instance. Exposed for testing. | 118 // Creates a new SyncScheduler instance. Exposed for testing. |
115 virtual std::unique_ptr<SyncScheduler> CreateSyncScheduler(); | 119 virtual std::unique_ptr<SyncScheduler> CreateSyncScheduler(); |
116 | 120 |
117 private: | 121 private: |
118 // CryptAuthGCMManager::Observer: | 122 // CryptAuthGCMManager::Observer: |
119 void OnResyncMessage() override; | 123 void OnResyncMessage() override; |
120 | 124 |
121 // Updates |unlock_keys_| by fetching the list stored in |pref_service_|. | 125 // Updates |unlock_keys_| by fetching the list stored in |pref_service_|. |
(...skipping 15 matching lines...) Expand all Loading... |
137 | 141 |
138 // Notifies when GCM push messages trigger device sync. Not owned and must | 142 // Notifies when GCM push messages trigger device sync. Not owned and must |
139 // outlive this instance. | 143 // outlive this instance. |
140 CryptAuthGCMManager* gcm_manager_; | 144 CryptAuthGCMManager* gcm_manager_; |
141 | 145 |
142 // Contains preferences that outlive the lifetime of this object and across | 146 // Contains preferences that outlive the lifetime of this object and across |
143 // process restarts. |pref_service_| must outlive the lifetime of this | 147 // process restarts. |pref_service_| must outlive the lifetime of this |
144 // instance. | 148 // instance. |
145 PrefService* const pref_service_; | 149 PrefService* const pref_service_; |
146 | 150 |
147 // The unlock keys currently synced from CryptAuth. | 151 // All devices currently synced from CryptAuth. |
148 std::vector<cryptauth::ExternalDeviceInfo> unlock_keys_; | 152 std::vector<cryptauth::ExternalDeviceInfo> synced_devices_; |
149 | 153 |
150 // Schedules the time between device sync attempts. | 154 // Schedules the time between device sync attempts. |
151 std::unique_ptr<SyncScheduler> scheduler_; | 155 std::unique_ptr<SyncScheduler> scheduler_; |
152 | 156 |
153 // Contains the SyncRequest that |scheduler_| requests when a device sync | 157 // Contains the SyncRequest that |scheduler_| requests when a device sync |
154 // attempt is made. | 158 // attempt is made. |
155 std::unique_ptr<SyncScheduler::SyncRequest> sync_request_; | 159 std::unique_ptr<SyncScheduler::SyncRequest> sync_request_; |
156 | 160 |
157 // The CryptAuthEnroller instance for the current sync attempt. A new | 161 // The CryptAuthEnroller instance for the current sync attempt. A new |
158 // instance will be created for each individual attempt. | 162 // instance will be created for each individual attempt. |
159 std::unique_ptr<CryptAuthClient> cryptauth_client_; | 163 std::unique_ptr<CryptAuthClient> cryptauth_client_; |
160 | 164 |
161 // List of observers. | 165 // List of observers. |
162 base::ObserverList<Observer> observers_; | 166 base::ObserverList<Observer> observers_; |
163 | 167 |
164 base::WeakPtrFactory<CryptAuthDeviceManager> weak_ptr_factory_; | 168 base::WeakPtrFactory<CryptAuthDeviceManager> weak_ptr_factory_; |
165 | 169 |
166 DISALLOW_COPY_AND_ASSIGN(CryptAuthDeviceManager); | 170 DISALLOW_COPY_AND_ASSIGN(CryptAuthDeviceManager); |
167 }; | 171 }; |
168 | 172 |
169 } // namespace cryptauth | 173 } // namespace cryptauth |
170 | 174 |
171 #endif // COMPONENTS_PROXIMITY_CRYPTAUTH_CRYPTAUTH_DEVICE_MANAGER_H | 175 #endif // COMPONENTS_PROXIMITY_CRYPTAUTH_CRYPTAUTH_DEVICE_MANAGER_H |
OLD | NEW |