summaryrefslogtreecommitdiffstats
path: root/components/sync_driver/device_info_tracker.h
diff options
context:
space:
mode:
Diffstat (limited to 'components/sync_driver/device_info_tracker.h')
-rw-r--r--components/sync_driver/device_info_tracker.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/components/sync_driver/device_info_tracker.h b/components/sync_driver/device_info_tracker.h
new file mode 100644
index 0000000..cad6e87
--- /dev/null
+++ b/components/sync_driver/device_info_tracker.h
@@ -0,0 +1,40 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_SYNC_DRIVER_DEVICE_INFO_TRACKER_H_
+#define COMPONENTS_SYNC_DRIVER_DEVICE_INFO_TRACKER_H_
+
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/scoped_vector.h"
+#include "components/sync_driver/device_info.h"
+
+namespace sync_driver {
+
+// Interface for tracking synced DeviceInfo.
+class DeviceInfoTracker {
+ public:
+ virtual ~DeviceInfoTracker() {}
+
+ // Observer class for listening to device info changes.
+ class Observer {
+ public:
+ virtual void OnDeviceInfoChange() = 0;
+ };
+
+ // Gets DeviceInfo the synced device with specified client ID.
+ // Returns an empty scoped_ptr if device with the given |client_id| hasn't
+ // been synced.
+ virtual scoped_ptr<DeviceInfo> GetDeviceInfo(
+ const std::string& client_id) const = 0;
+ // Gets DeviceInfo for all synced devices (including the local one).
+ virtual ScopedVector<DeviceInfo> GetAllDeviceInfo() const = 0;
+ // Registers an observer to be called on syncing any updated DeviceInfo.
+ virtual void AddObserver(Observer* observer) = 0;
+ // Unregisters an observer.
+ virtual void RemoveObserver(Observer* observer) = 0;
+};
+
+} // namespace sync_driver
+
+#endif // COMPONENTS_SYNC_DRIVER_DEVICE_INFO_TRACKER_H_