1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
// Copyright 2014 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_file_system/drive_backend/sync_engine_context.h"
#include "base/basictypes.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/sequenced_task_runner.h"
#include "base/single_thread_task_runner.h"
#include "chrome/browser/drive/drive_service_interface.h"
#include "chrome/browser/drive/drive_uploader.h"
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
#include "chrome/browser/sync_file_system/remote_change_processor.h"
#include "chrome/browser/sync_file_system/task_logger.h"
namespace sync_file_system {
namespace drive_backend {
SyncEngineContext::SyncEngineContext(
scoped_ptr<drive::DriveServiceInterface> drive_service,
scoped_ptr<drive::DriveUploaderInterface> drive_uploader,
TaskLogger* task_logger,
const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner,
const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner)
: drive_service_(drive_service.Pass()),
drive_uploader_(drive_uploader.Pass()),
task_logger_(task_logger ? task_logger->AsWeakPtr()
: base::WeakPtr<TaskLogger>()),
remote_change_processor_(nullptr),
ui_task_runner_(ui_task_runner),
worker_task_runner_(worker_task_runner) {
sequence_checker_.DetachFromSequence();
}
SyncEngineContext::~SyncEngineContext() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
}
drive::DriveServiceInterface* SyncEngineContext::GetDriveService() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return drive_service_.get();
}
drive::DriveUploaderInterface* SyncEngineContext::GetDriveUploader() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return drive_uploader_.get();
}
base::WeakPtr<TaskLogger> SyncEngineContext::GetTaskLogger() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return task_logger_;
}
MetadataDatabase* SyncEngineContext::GetMetadataDatabase() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return metadata_database_.get();
}
scoped_ptr<MetadataDatabase> SyncEngineContext::PassMetadataDatabase() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return metadata_database_.Pass();
}
RemoteChangeProcessor* SyncEngineContext::GetRemoteChangeProcessor() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return remote_change_processor_;
}
base::SingleThreadTaskRunner* SyncEngineContext::GetUITaskRunner() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return ui_task_runner_.get();
}
base::SequencedTaskRunner* SyncEngineContext::GetWorkerTaskRunner() {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
return worker_task_runner_.get();
}
void SyncEngineContext::SetMetadataDatabase(
scoped_ptr<MetadataDatabase> metadata_database) {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
if (metadata_database)
metadata_database_ = metadata_database.Pass();
}
void SyncEngineContext::SetRemoteChangeProcessor(
RemoteChangeProcessor* remote_change_processor) {
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
DCHECK(remote_change_processor);
remote_change_processor_ = remote_change_processor;
}
void SyncEngineContext::DetachFromSequence() {
sequence_checker_.DetachFromSequence();
}
} // namespace drive_backend
} // namespace sync_file_system
|