1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_SYNC_GLUE_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
6 #define CHROME_BROWSER_SYNC_GLUE_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_
8 #include "base/memory/weak_ptr.h"
9 #include "components/sync_driver/device_info.h"
10 #include "components/sync_driver/local_device_info_provider.h"
12 namespace browser_sync
{
14 class LocalDeviceInfoProviderImpl
15 : public sync_driver::LocalDeviceInfoProvider
{
17 LocalDeviceInfoProviderImpl();
18 ~LocalDeviceInfoProviderImpl() override
;
20 // LocalDeviceInfoProvider implementation.
21 const sync_driver::DeviceInfo
* GetLocalDeviceInfo() const override
;
22 std::string
GetLocalSyncCacheGUID() const override
;
23 void Initialize(const std::string
& cache_guid
,
24 const std::string
& signin_scoped_device_id
) override
;
25 scoped_ptr
<Subscription
> RegisterOnInitializedCallback(
26 const base::Closure
& callback
) override
;
28 // Helper to construct a user agent string (ASCII) suitable for use by
29 // the syncapi for any HTTP communication. This string is used by the sync
30 // backend for classifying client types when calculating statistics.
31 static std::string
MakeUserAgentForSyncApi();
34 void InitializeContinuation(const std::string
& guid
,
35 const std::string
& signin_scoped_device_id
,
36 const std::string
& session_name
);
38 std::string cache_guid_
;
39 scoped_ptr
<sync_driver::DeviceInfo
> local_device_info_
;
40 base::CallbackList
<void(void)> callback_list_
;
41 base::WeakPtrFactory
<LocalDeviceInfoProviderImpl
> weak_factory_
;
43 DISALLOW_COPY_AND_ASSIGN(LocalDeviceInfoProviderImpl
);
46 } // namespace browser_sync
48 #endif // CHROME_BROWSER_SYNC_GLUE_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_