| Index: chrome/browser/sync/glue/synced_device_tracker.cc
|
| diff --git a/chrome/browser/sync/glue/synced_device_tracker.cc b/chrome/browser/sync/glue/synced_device_tracker.cc
|
| deleted file mode 100644
|
| index 73e8cbb2425e5c65508d2cd59c9fc9a19247f2ad..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/sync/glue/synced_device_tracker.cc
|
| +++ /dev/null
|
| @@ -1,238 +0,0 @@
|
| -// Copyright (c) 2012 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.
|
| -
|
| -#include "chrome/browser/sync/glue/synced_device_tracker.h"
|
| -
|
| -#include "base/strings/stringprintf.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "chrome/browser/sync/glue/device_info.h"
|
| -#include "sync/internal_api/public/base/model_type.h"
|
| -#include "sync/internal_api/public/read_node.h"
|
| -#include "sync/internal_api/public/read_transaction.h"
|
| -#include "sync/internal_api/public/user_share.h"
|
| -#include "sync/internal_api/public/write_node.h"
|
| -#include "sync/internal_api/public/write_transaction.h"
|
| -#include "sync/util/time.h"
|
| -
|
| -namespace browser_sync {
|
| -
|
| -namespace {
|
| -
|
| -// Return the DeviceInfo UNIQUE_CLIENT_TAG value for the given sync cache_guid.
|
| -std::string DeviceInfoLookupString(const std::string& cache_guid) {
|
| - return base::StringPrintf("DeviceInfo_%s", cache_guid.c_str());
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -SyncedDeviceTracker::SyncedDeviceTracker(syncer::UserShare* user_share,
|
| - const std::string& cache_guid)
|
| - : ChangeProcessor(NULL),
|
| - user_share_(user_share),
|
| - cache_guid_(cache_guid),
|
| - local_device_info_tag_(DeviceInfoLookupString(cache_guid)),
|
| - weak_factory_(this) {
|
| - observers_ = new ObserverListThreadSafe<Observer>;
|
| -}
|
| -
|
| -SyncedDeviceTracker::~SyncedDeviceTracker() {
|
| -}
|
| -
|
| -void SyncedDeviceTracker::StartImpl() { }
|
| -
|
| -void SyncedDeviceTracker::ApplyChangesFromSyncModel(
|
| - const syncer::BaseTransaction* trans,
|
| - int64 model_version,
|
| - const syncer::ImmutableChangeRecordList& changes) {
|
| - // If desired, we could maintain a cache of device info. This method will be
|
| - // called with a transaction every time the device info is modified, so this
|
| - // would be the right place to update the cache.
|
| -}
|
| -
|
| -void SyncedDeviceTracker::CommitChangesFromSyncModel() {
|
| - observers_->Notify(&Observer::OnDeviceInfoChange);
|
| -}
|
| -
|
| -scoped_ptr<DeviceInfo> SyncedDeviceTracker::ReadLocalDeviceInfo() const {
|
| - syncer::ReadTransaction trans(FROM_HERE, user_share_);
|
| - return ReadLocalDeviceInfo(trans);
|
| -}
|
| -
|
| -scoped_ptr<DeviceInfo> SyncedDeviceTracker::ReadLocalDeviceInfo(
|
| - const syncer::BaseTransaction& trans) const {
|
| - syncer::ReadNode node(&trans);
|
| - if (node.InitByClientTagLookup(syncer::DEVICE_INFO, local_device_info_tag_) !=
|
| - syncer::BaseNode::INIT_OK) {
|
| - return scoped_ptr<DeviceInfo>();
|
| - }
|
| -
|
| - const sync_pb::DeviceInfoSpecifics& specifics = node.GetDeviceInfoSpecifics();
|
| - return scoped_ptr<DeviceInfo>(
|
| - new DeviceInfo(specifics.cache_guid(),
|
| - specifics.client_name(),
|
| - specifics.chrome_version(),
|
| - specifics.sync_user_agent(),
|
| - specifics.device_type(),
|
| - specifics.signin_scoped_device_id()));
|
| -}
|
| -
|
| -scoped_ptr<DeviceInfo> SyncedDeviceTracker::ReadDeviceInfo(
|
| - const std::string& client_id) const {
|
| - syncer::ReadTransaction trans(FROM_HERE, user_share_);
|
| - syncer::ReadNode node(&trans);
|
| - std::string lookup_string = DeviceInfoLookupString(client_id);
|
| - if (node.InitByClientTagLookup(syncer::DEVICE_INFO, lookup_string) !=
|
| - syncer::BaseNode::INIT_OK) {
|
| - return scoped_ptr<DeviceInfo>();
|
| - }
|
| -
|
| - const sync_pb::DeviceInfoSpecifics& specifics = node.GetDeviceInfoSpecifics();
|
| - return scoped_ptr<DeviceInfo>(
|
| - new DeviceInfo(specifics.cache_guid(),
|
| - specifics.client_name(),
|
| - specifics.chrome_version(),
|
| - specifics.sync_user_agent(),
|
| - specifics.device_type(),
|
| - specifics.signin_scoped_device_id()));
|
| -}
|
| -
|
| -void SyncedDeviceTracker::GetAllSyncedDeviceInfo(
|
| - ScopedVector<DeviceInfo>* device_info) const {
|
| - if (device_info == NULL)
|
| - return;
|
| -
|
| - device_info->clear();
|
| -
|
| - syncer::ReadTransaction trans(FROM_HERE, user_share_);
|
| - syncer::ReadNode root_node(&trans);
|
| -
|
| - if (root_node.InitTypeRoot(syncer::DEVICE_INFO) !=
|
| - syncer::BaseNode::INIT_OK) {
|
| - return;
|
| - }
|
| -
|
| - // Get all the children of the root node and use the child id to read
|
| - // device info for devices.
|
| - std::vector<int64> children;
|
| - root_node.GetChildIds(&children);
|
| -
|
| - for (std::vector<int64>::const_iterator it = children.begin();
|
| - it != children.end(); ++it) {
|
| - syncer::ReadNode node(&trans);
|
| - if (node.InitByIdLookup(*it) != syncer::BaseNode::INIT_OK)
|
| - return;
|
| -
|
| - const sync_pb::DeviceInfoSpecifics& specifics =
|
| - node.GetDeviceInfoSpecifics();
|
| - device_info->push_back(new DeviceInfo(specifics.cache_guid(),
|
| - specifics.client_name(),
|
| - specifics.chrome_version(),
|
| - specifics.sync_user_agent(),
|
| - specifics.device_type(),
|
| - specifics.signin_scoped_device_id()));
|
| - }
|
| -}
|
| -
|
| -std::string SyncedDeviceTracker::cache_guid() const {
|
| - return cache_guid_;
|
| -}
|
| -
|
| -void SyncedDeviceTracker::AddObserver(Observer* observer) {
|
| - observers_->AddObserver(observer);
|
| -}
|
| -
|
| -void SyncedDeviceTracker::RemoveObserver(Observer* observer) {
|
| - observers_->RemoveObserver(observer);
|
| -}
|
| -
|
| -void SyncedDeviceTracker::InitLocalDeviceInfo(
|
| - const std::string& signin_scoped_device_id,
|
| - const base::Closure& callback) {
|
| - DeviceInfo::CreateLocalDeviceInfo(
|
| - cache_guid_,
|
| - signin_scoped_device_id,
|
| - base::Bind(&SyncedDeviceTracker::InitLocalDeviceInfoContinuation,
|
| - weak_factory_.GetWeakPtr(),
|
| - callback));
|
| -}
|
| -
|
| -void SyncedDeviceTracker::InitLocalDeviceInfoContinuation(
|
| - const base::Closure& callback, const DeviceInfo& local_info) {
|
| - WriteLocalDeviceInfo(local_info);
|
| - callback.Run();
|
| -}
|
| -
|
| -void SyncedDeviceTracker::WriteLocalDeviceInfo(const DeviceInfo& info) {
|
| - DCHECK_EQ(cache_guid_, info.guid());
|
| - WriteDeviceInfo(info, local_device_info_tag_);
|
| -}
|
| -
|
| -void SyncedDeviceTracker::WriteDeviceInfo(const DeviceInfo& info,
|
| - const std::string& tag) {
|
| - syncer::WriteTransaction trans(FROM_HERE, user_share_);
|
| - syncer::WriteNode node(&trans);
|
| -
|
| - sync_pb::DeviceInfoSpecifics specifics;
|
| - specifics.set_cache_guid(info.guid());
|
| - specifics.set_client_name(info.client_name());
|
| - specifics.set_chrome_version(info.chrome_version());
|
| - specifics.set_sync_user_agent(info.sync_user_agent());
|
| - specifics.set_device_type(info.device_type());
|
| - specifics.set_signin_scoped_device_id(info.signin_scoped_device_id());
|
| -
|
| - if (node.InitByClientTagLookup(syncer::DEVICE_INFO, tag) ==
|
| - syncer::BaseNode::INIT_OK) {
|
| - const sync_pb::DeviceInfoSpecifics& sync_specifics =
|
| - node.GetDeviceInfoSpecifics();
|
| - if (sync_specifics.has_backup_timestamp())
|
| - specifics.set_backup_timestamp(sync_specifics.backup_timestamp());
|
| - node.SetDeviceInfoSpecifics(specifics);
|
| - node.SetTitle(specifics.client_name());
|
| - } else {
|
| - syncer::ReadNode type_root(&trans);
|
| - syncer::BaseNode::InitByLookupResult type_root_lookup_result =
|
| - type_root.InitTypeRoot(syncer::DEVICE_INFO);
|
| - DCHECK_EQ(syncer::BaseNode::INIT_OK, type_root_lookup_result);
|
| -
|
| - syncer::WriteNode new_node(&trans);
|
| - syncer::WriteNode::InitUniqueByCreationResult create_result =
|
| - new_node.InitUniqueByCreation(syncer::DEVICE_INFO,
|
| - type_root,
|
| - tag);
|
| - DCHECK_EQ(syncer::WriteNode::INIT_SUCCESS, create_result);
|
| - new_node.SetDeviceInfoSpecifics(specifics);
|
| - new_node.SetTitle(specifics.client_name());
|
| - }
|
| -}
|
| -
|
| -void SyncedDeviceTracker::UpdateLocalDeviceBackupTime(base::Time backup_time) {
|
| - syncer::WriteTransaction trans(FROM_HERE, user_share_);
|
| - syncer::WriteNode node(&trans);
|
| -
|
| - if (node.InitByClientTagLookup(syncer::DEVICE_INFO, local_device_info_tag_)
|
| - == syncer::BaseNode::INIT_OK) {
|
| - sync_pb::DeviceInfoSpecifics specifics = node.GetDeviceInfoSpecifics();
|
| - int64 new_backup_timestamp = syncer::TimeToProtoTime(backup_time);
|
| - if (!specifics.has_backup_timestamp() ||
|
| - specifics.backup_timestamp() != new_backup_timestamp) {
|
| - specifics.set_backup_timestamp(new_backup_timestamp);
|
| - node.SetDeviceInfoSpecifics(specifics);
|
| - }
|
| - }
|
| -}
|
| -
|
| -base::Time SyncedDeviceTracker::GetLocalDeviceBackupTime() const {
|
| - syncer::ReadTransaction trans(FROM_HERE, user_share_);
|
| - syncer::ReadNode node(&trans);
|
| - if (node.InitByClientTagLookup(syncer::DEVICE_INFO, local_device_info_tag_)
|
| - == syncer::BaseNode::INIT_OK &&
|
| - node.GetDeviceInfoSpecifics().has_backup_timestamp()) {
|
| - return syncer::ProtoTimeToTime(
|
| - node.GetDeviceInfoSpecifics().backup_timestamp());
|
| - } else {
|
| - return base::Time();
|
| - }
|
| -}
|
| -
|
| -} // namespace browser_sync
|
|
|