sync_engine_context.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_ENGINE_CONTEXT_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_ENGINE_CONTEXT_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/memory/ref_counted.h" 108bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/memory/weak_ptr.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/sequence_checker.h" 1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)namespace base { 15a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class SequencedTaskRunner; 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class SingleThreadTaskRunner; 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace drive { 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class DriveServiceInterface; 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class DriveUploaderInterface; 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace sync_file_system { 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class RemoteChangeProcessor; 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class TaskLogger; 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace drive_backend { 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class MetadataDatabase; 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class SyncEngineContext { 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SyncEngineContext( 36a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<drive::DriveServiceInterface> drive_service, 37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<drive::DriveUploaderInterface> drive_uploader, 38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) TaskLogger* task_logger, 39a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::SingleThreadTaskRunner* ui_task_runner, 40a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::SequencedTaskRunner* worker_task_runner); 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ~SyncEngineContext(); 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void SetMetadataDatabase(scoped_ptr<MetadataDatabase> metadata_database); 44a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void SetRemoteChangeProcessor( 45a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) RemoteChangeProcessor* remote_change_processor); 46a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 47a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) drive::DriveServiceInterface* GetDriveService(); 48a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) drive::DriveUploaderInterface* GetDriveUploader(); 49a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::WeakPtr<TaskLogger> GetTaskLogger(); 50a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) MetadataDatabase* GetMetadataDatabase(); 51a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) RemoteChangeProcessor* GetRemoteChangeProcessor(); 52a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::SingleThreadTaskRunner* GetUITaskRunner(); 53a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::SequencedTaskRunner* GetWorkerTaskRunner(); 54a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 55a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<MetadataDatabase> PassMetadataDatabase(); 56a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 57a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void DetachFromSequence(); 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) friend class DriveBackendSyncTest; 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<drive::DriveServiceInterface> drive_service_; 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<drive::DriveUploaderInterface> drive_uploader_; 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) base::WeakPtr<TaskLogger> task_logger_; 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) RemoteChangeProcessor* remote_change_processor_; // Not owned. 66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<MetadataDatabase> metadata_database_; 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<base::SequencedTaskRunner> worker_task_runner_; 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 71f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) base::SequenceChecker sequence_checker_; 72f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 738bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(SyncEngineContext); 74f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 75f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 76f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace drive_backend 775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} // namespace sync_file_system 785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_SYNC_ENGINE_CONTEXT_H_ 805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)