sync_engine_context.h revision a02191e04bc25c4935f804f2c080ae28663d096d
1// Copyright 2013 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#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_ENGINE_CONTEXT_H_ 6#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_ENGINE_CONTEXT_H_ 7 8#include "base/basictypes.h" 9#include "base/memory/ref_counted.h" 10#include "base/memory/scoped_ptr.h" 11#include "base/memory/weak_ptr.h" 12 13namespace base { 14class SequencedTaskRunner; 15} 16 17namespace drive { 18class DriveServiceInterface; 19class DriveUploaderInterface; 20} 21 22namespace sync_file_system { 23 24class RemoteChangeProcessor; 25 26namespace drive_backend { 27 28class MetadataDatabase; 29 30class SyncEngineContext { 31 public: 32 SyncEngineContext( 33 drive::DriveServiceInterface* drive_service, 34 drive::DriveUploaderInterface* drive_uploader, 35 base::SequencedTaskRunner* task_runner); 36 ~SyncEngineContext(); 37 38 drive::DriveServiceInterface* GetDriveService(); 39 drive::DriveUploaderInterface* GetDriveUploader(); 40 MetadataDatabase* GetMetadataDatabase(); 41 RemoteChangeProcessor* GetRemoteChangeProcessor(); 42 base::SequencedTaskRunner* GetBlockingTaskRunner(); 43 44 void SetMetadataDatabase(scoped_ptr<MetadataDatabase> metadata_database); 45 void SetRemoteChangeProcessor(RemoteChangeProcessor* remote_change_processor); 46 47 scoped_ptr<MetadataDatabase> PassMetadataDatabase(); 48 49 private: 50 drive::DriveServiceInterface* drive_service_; 51 drive::DriveUploaderInterface* drive_uploader_; 52 RemoteChangeProcessor* remote_change_processor_; 53 54 scoped_ptr<MetadataDatabase> metadata_database_; 55 scoped_refptr<base::SequencedTaskRunner> task_runner_; 56 57 DISALLOW_COPY_AND_ASSIGN(SyncEngineContext); 58}; 59 60} // namespace drive_backend 61} // namespace sync_file_system 62 63#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_ENGINE_CONTEXT_H_ 64