sync_engine_context.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// Copyright 2014 The Chromium Authors. All rights reserved.
243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// Use of this source code is governed by a BSD-style license that can be
343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis// found in the LICENSE file.
443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
543dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h"
643dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
743dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/basictypes.h"
843dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/memory/ref_counted.h"
943dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/memory/scoped_ptr.h"
1043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/sequenced_task_runner.h"
1143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "base/single_thread_task_runner.h"
1243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "chrome/browser/drive/drive_service_interface.h"
1343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "chrome/browser/drive/drive_uploader.h"
1443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
15ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek#include "chrome/browser/sync_file_system/remote_change_processor.h"
16769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis#include "chrome/browser/sync_file_system/task_logger.h"
17de507eaf3cb54d3cb234dc14499c10ab3373d15fJordan Rose
18769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidisnamespace sync_file_system {
199fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisnamespace drive_backend {
2043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
2143dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios KyrtzidisSyncEngineContext::SyncEngineContext(
2243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis    scoped_ptr<drive::DriveServiceInterface> drive_service,
2343dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis    scoped_ptr<drive::DriveUploaderInterface> drive_uploader,
24d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis    TaskLogger* task_logger,
25d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis    base::SingleThreadTaskRunner* ui_task_runner,
26d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis    base::SequencedTaskRunner* worker_task_runner,
27d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis    base::SequencedTaskRunner* file_task_runner)
2896479da6ad9d921d875e7be29fe1bfa127be8069Jordan Rose    : drive_service_(drive_service.Pass()),
2996479da6ad9d921d875e7be29fe1bfa127be8069Jordan Rose      drive_uploader_(drive_uploader.Pass()),
30d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis      task_logger_(task_logger
31d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis                   ? task_logger->AsWeakPtr()
32d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis                   : base::WeakPtr<TaskLogger>()),
33d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis      remote_change_processor_(NULL),
34d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis      ui_task_runner_(ui_task_runner),
35d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis      worker_task_runner_(worker_task_runner),
36d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis      file_task_runner_(file_task_runner) {}
37d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis
38d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios KyrtzidisSyncEngineContext::~SyncEngineContext() {}
39dff6ef903ff4fcb43b5ea292ecd772e381393b5dAnna Zaks
40dff6ef903ff4fcb43b5ea292ecd772e381393b5dAnna Zaksdrive::DriveServiceInterface* SyncEngineContext::GetDriveService() {
41d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis  return drive_service_.get();
42d655ab28fdf7c940d3f79f8f287954d7f76e0977Argyrios Kyrtzidis}
43deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis
44deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidisdrive::DriveUploaderInterface* SyncEngineContext::GetDriveUploader() {
45deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis  return drive_uploader_.get();
46deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis}
47deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis
48deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidisbase::WeakPtr<TaskLogger> SyncEngineContext::GetTaskLogger() {
49deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis  return task_logger_;
50deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis}
51deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios Kyrtzidis
52deb6447d0029bdb122397fafb5fa2a4e76f2e555Argyrios KyrtzidisMetadataDatabase* SyncEngineContext::GetMetadataDatabase() {
53769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  return metadata_database_.get();
54769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis}
55769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
56769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidisscoped_ptr<MetadataDatabase> SyncEngineContext::PassMetadataDatabase() {
579fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  return metadata_database_.Pass();
589fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis}
599fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
609fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios KyrtzidisRemoteChangeProcessor* SyncEngineContext::GetRemoteChangeProcessor() {
619fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  return remote_change_processor_;
629fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis}
639fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
649fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisbase::SingleThreadTaskRunner* SyncEngineContext::GetUITaskRunner() {
659fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  return ui_task_runner_.get();
669fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis}
679fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
689fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisbase::SequencedTaskRunner* SyncEngineContext::GetWorkerTaskRunner() {
699fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  return worker_task_runner_.get();
709fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis}
719fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
72769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidisbase::SequencedTaskRunner* SyncEngineContext::GetFileTaskRunner() {
739fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  return file_task_runner_.get();
749fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis}
759fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
769fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisvoid SyncEngineContext::SetMetadataDatabase(
779fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    scoped_ptr<MetadataDatabase> metadata_database) {
78769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis  if (metadata_database)
79769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis    metadata_database_ = metadata_database.Pass();
809fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis}
819fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis
829fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidisvoid SyncEngineContext::SetRemoteChangeProcessor(
839fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis    RemoteChangeProcessor* remote_change_processor) {
849fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  DCHECK(remote_change_processor);
859fb9474c5b267400d4abfbff63c8b39f378235d4Argyrios Kyrtzidis  remote_change_processor_ = remote_change_processor;
86769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis}
87769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis
88769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis}  // namespace drive_backend
89769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis}  // namespace sync_file_system
90769ce3e93ad35bd9ac28e4d8b8f035ae4fd9a5b5Argyrios Kyrtzidis