sync_engine_context.cc revision 010d83a9304c5a91596085d917d248abff47903a
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 "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h"
6
7#include "base/basictypes.h"
8#include "base/memory/ref_counted.h"
9#include "base/memory/scoped_ptr.h"
10#include "base/sequenced_task_runner.h"
11#include "base/single_thread_task_runner.h"
12#include "chrome/browser/drive/drive_service_interface.h"
13#include "chrome/browser/drive/drive_uploader.h"
14#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
15#include "chrome/browser/sync_file_system/remote_change_processor.h"
16
17namespace sync_file_system {
18namespace drive_backend {
19
20SyncEngineContext::SyncEngineContext(
21    scoped_ptr<drive::DriveServiceInterface> drive_service,
22    scoped_ptr<drive::DriveUploaderInterface> drive_uploader,
23    base::SingleThreadTaskRunner* ui_task_runner,
24    base::SequencedTaskRunner* worker_task_runner,
25    base::SequencedTaskRunner* file_task_runner)
26    : drive_service_(drive_service.Pass()),
27      drive_uploader_(drive_uploader.Pass()),
28      remote_change_processor_(NULL),
29      ui_task_runner_(ui_task_runner),
30      worker_task_runner_(worker_task_runner),
31      file_task_runner_(file_task_runner) {}
32
33SyncEngineContext::~SyncEngineContext() {}
34
35drive::DriveServiceInterface* SyncEngineContext::GetDriveService() {
36  return drive_service_.get();
37}
38
39drive::DriveUploaderInterface* SyncEngineContext::GetDriveUploader() {
40  return drive_uploader_.get();
41}
42
43MetadataDatabase* SyncEngineContext::GetMetadataDatabase() {
44  return metadata_database_.get();
45}
46
47scoped_ptr<MetadataDatabase> SyncEngineContext::PassMetadataDatabase() {
48  return metadata_database_.Pass();
49}
50
51RemoteChangeProcessor* SyncEngineContext::GetRemoteChangeProcessor() {
52  return remote_change_processor_;
53}
54
55base::SingleThreadTaskRunner* SyncEngineContext::GetUITaskRunner() {
56  return ui_task_runner_.get();
57}
58
59base::SequencedTaskRunner* SyncEngineContext::GetWorkerTaskRunner() {
60  return worker_task_runner_.get();
61}
62
63base::SequencedTaskRunner* SyncEngineContext::GetFileTaskRunner() {
64  return file_task_runner_.get();
65}
66
67void SyncEngineContext::SetMetadataDatabase(
68    scoped_ptr<MetadataDatabase> metadata_database) {
69  if (metadata_database)
70    metadata_database_ = metadata_database.Pass();
71}
72
73void SyncEngineContext::SetRemoteChangeProcessor(
74    RemoteChangeProcessor* remote_change_processor) {
75  DCHECK(remote_change_processor);
76  remote_change_processor_ = remote_change_processor;
77}
78
79}  // namespace drive_backend
80}  // namespace sync_file_system
81