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