diff options
Diffstat (limited to 'components/sync_driver/device_info_tracker.h')
-rw-r--r-- | components/sync_driver/device_info_tracker.h | 40 |
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_ |