diff options
Diffstat (limited to 'components/sync_driver/local_device_info_provider.h')
-rw-r--r-- | components/sync_driver/local_device_info_provider.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/components/sync_driver/local_device_info_provider.h b/components/sync_driver/local_device_info_provider.h new file mode 100644 index 0000000..6036a7e --- /dev/null +++ b/components/sync_driver/local_device_info_provider.h @@ -0,0 +1,50 @@ +// 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_LOCAL_DEVICE_INFO_PROVIDER_H_ +#define COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_H_ + +#include <string> +#include "base/callback_list.h" + +namespace sync_driver { + +class DeviceInfo; + +// Interface for providing sync specific informaiton about the +// local device. +class LocalDeviceInfoProvider { + public: + typedef base::CallbackList<void(void)>::Subscription Subscription; + + virtual ~LocalDeviceInfoProvider() {} + + // Returns sync's representation of the local device info; + // NULL if the device info is unavailable. + // The returned object is fully owned by LocalDeviceInfoProvider (must not + // be freed by the caller). It remains valid until LocalDeviceInfoProvider + // is destroyed. + virtual const DeviceInfo* GetLocalDeviceInfo() const = 0; + + // Returns a GUID string used for creation of the machine tag for + // this local session; an empty sting if LocalDeviceInfoProvider hasn't been + // initialized yet. + virtual std::string GetLocalSyncCacheGUID() const = 0; + + // Starts initializing local device info. + virtual void Initialize( + const std::string& cache_guid, + const std::string& signin_scoped_device_id) = 0; + + // Registers a callback to be called when local device info becomes available. + // The callback will remain registered until the + // returned Subscription is destroyed, which must occur before the + // CallbackList is destroyed. + virtual scoped_ptr<Subscription> RegisterOnInitializedCallback( + const base::Closure& callback) = 0; +}; + +} // namespace sync_driver + +#endif // COMPONENTS_SYNC_DRIVER_LOCAL_DEVICE_INFO_PROVIDER_H_ |