• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #include "components/sync_driver/data_type_controller.h"
6 
7 #include "sync/internal_api/public/base/model_type.h"
8 #include "sync/internal_api/public/user_share.h"
9 #include "sync/util/data_type_histogram.h"
10 
11 namespace browser_sync {
12 
DataTypeController(scoped_refptr<base::MessageLoopProxy> ui_thread,const base::Closure & error_callback,const DisableTypeCallback & disable_callback)13 DataTypeController::DataTypeController(
14     scoped_refptr<base::MessageLoopProxy> ui_thread,
15     const base::Closure& error_callback,
16     const DisableTypeCallback& disable_callback)
17     : base::RefCountedDeleteOnMessageLoop<DataTypeController>(ui_thread),
18       error_callback_(error_callback),
19       disable_callback_(disable_callback),
20       user_share_(NULL) {
21 }
22 
~DataTypeController()23 DataTypeController::~DataTypeController() {
24 }
25 
IsUnrecoverableResult(StartResult result)26 bool DataTypeController::IsUnrecoverableResult(StartResult result) {
27   return (result == UNRECOVERABLE_ERROR);
28 }
29 
IsSuccessfulResult(StartResult result)30 bool DataTypeController::IsSuccessfulResult(StartResult result) {
31   return (result == OK || result == OK_FIRST_RUN);
32 }
33 
CreateAndUploadError(const tracked_objects::Location & location,const std::string & message,syncer::ModelType type)34 syncer::SyncError DataTypeController::CreateAndUploadError(
35     const tracked_objects::Location& location,
36     const std::string& message,
37     syncer::ModelType type) {
38   if (!error_callback_.is_null())
39     error_callback_.Run();
40   return syncer::SyncError(location,
41                            syncer::SyncError::DATATYPE_ERROR,
42                            message,
43                            type);
44 }
45 
OnUserShareReady(syncer::UserShare * share)46 void DataTypeController::OnUserShareReady(syncer::UserShare* share) {
47   user_share_ = share;
48 }
49 
user_share() const50 syncer::UserShare* DataTypeController::user_share() const {
51   return user_share_;
52 }
53 
54 DataTypeController::DisableTypeCallback
disable_callback()55 DataTypeController::disable_callback() {
56   return disable_callback_;
57 }
58 
ReadyForStart() const59 bool DataTypeController::ReadyForStart() const {
60   return true;
61 }
62 
63 }  // namespace browser_sync
64