Index: chrome/browser/sync_file_system/drive_backend/sync_engine_context.h |
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine_context.h b/chrome/browser/sync_file_system/drive_backend/sync_engine_context.h |
index 2a90d849e6404259a9a846db7b7621a3f85aa8d5..be9640620a0f7755fce02ad5a3cced33558dd85f 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine_context.h |
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine_context.h |
@@ -6,6 +6,8 @@ |
#define 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" |
namespace base { |
class SequencedTaskRunner; |
@@ -26,16 +28,29 @@ class MetadataDatabase; |
class SyncEngineContext { |
public: |
- SyncEngineContext() {} |
- ~SyncEngineContext() {} |
+ SyncEngineContext(scoped_ptr<drive::DriveServiceInterface> drive_service, |
+ scoped_ptr<drive::DriveUploaderInterface> drive_uploader, |
+ base::SequencedTaskRunner* task_runner); |
+ ~SyncEngineContext(); |
- virtual drive::DriveServiceInterface* GetDriveService() = 0; |
- virtual drive::DriveUploaderInterface* GetDriveUploader() = 0; |
- virtual MetadataDatabase* GetMetadataDatabase() = 0; |
- virtual RemoteChangeProcessor* GetRemoteChangeProcessor() = 0; |
- virtual base::SequencedTaskRunner* GetBlockingTaskRunner() = 0; |
+ drive::DriveServiceInterface* GetDriveService(); |
+ drive::DriveUploaderInterface* GetDriveUploader(); |
+ MetadataDatabase* GetMetadataDatabase(); |
+ RemoteChangeProcessor* GetRemoteChangeProcessor(); |
+ base::SequencedTaskRunner* GetBlockingTaskRunner(); |
+ |
+ void SetMetadataDatabase(scoped_ptr<MetadataDatabase> metadata_database); |
+ void SetRemoteChangeProcessor(RemoteChangeProcessor* remote_change_processor); |
+ |
+ scoped_ptr<MetadataDatabase> PassMetadataDatabase(); |
private: |
+ scoped_ptr<drive::DriveServiceInterface> drive_service_; |
+ scoped_ptr<drive::DriveUploaderInterface> drive_uploader_; |
+ scoped_ptr<MetadataDatabase> metadata_database_; |
+ RemoteChangeProcessor* remote_change_processor_; // Do not own |
+ scoped_refptr<base::SequencedTaskRunner> task_runner_; |
+ |
DISALLOW_COPY_AND_ASSIGN(SyncEngineContext); |
}; |