Add ENABLE_MEDIA_ROUTER define to builds other than Android and iOS.
[chromium-blink-merge.git] / chrome / browser / sync / glue / local_device_info_provider_impl.h
blob4c8145fffd70c5a83e6bd6a55336f93829d81b90
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 chrome {
13 class VersionInfo;
16 namespace browser_sync {
18 class LocalDeviceInfoProviderImpl
19 : public sync_driver::LocalDeviceInfoProvider {
20 public:
21 LocalDeviceInfoProviderImpl();
22 ~LocalDeviceInfoProviderImpl() override;
24 // LocalDeviceInfoProvider implementation.
25 const sync_driver::DeviceInfo* GetLocalDeviceInfo() const override;
26 std::string GetLocalSyncCacheGUID() const override;
27 void Initialize(const std::string& cache_guid,
28 const std::string& signin_scoped_device_id) override;
29 scoped_ptr<Subscription> RegisterOnInitializedCallback(
30 const base::Closure& callback) override;
32 // Helper to construct a user agent string (ASCII) suitable for use by
33 // the syncapi for any HTTP communication. This string is used by the sync
34 // backend for classifying client types when calculating statistics.
35 static std::string MakeUserAgentForSyncApi(
36 const chrome::VersionInfo& version_info);
38 private:
39 void InitializeContinuation(const std::string& guid,
40 const std::string& signin_scoped_device_id,
41 const std::string& session_name);
43 std::string cache_guid_;
44 scoped_ptr<sync_driver::DeviceInfo> local_device_info_;
45 base::CallbackList<void(void)> callback_list_;
46 base::WeakPtrFactory<LocalDeviceInfoProviderImpl> weak_factory_;
48 DISALLOW_COPY_AND_ASSIGN(LocalDeviceInfoProviderImpl);
51 } // namespace browser_sync
53 #endif // CHROME_BROWSER_SYNC_GLUE_LOCAL_DEVICE_INFO_PROVIDER_IMPL_H_