Index: chrome/browser/chromeos/drive/sync_client.h |
diff --git a/chrome/browser/chromeos/drive/sync_client.h b/chrome/browser/chromeos/drive/sync_client.h |
deleted file mode 100644 |
index 1aedc38e8db1855734e7c952b852f5b63acbc585..0000000000000000000000000000000000000000 |
--- a/chrome/browser/chromeos/drive/sync_client.h |
+++ /dev/null |
@@ -1,199 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-#ifndef CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_ |
-#define CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_ |
- |
-#include <map> |
-#include <string> |
-#include <vector> |
- |
-#include "base/callback.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/threading/thread_checker.h" |
-#include "base/time/time.h" |
-#include "components/drive/file_errors.h" |
-#include "components/drive/job_scheduler.h" |
-#include "components/drive/resource_metadata.h" |
- |
-namespace base { |
-class SequencedTaskRunner; |
-} |
- |
-namespace drive { |
- |
-class FileCacheEntry; |
-class JobScheduler; |
-class ResourceEntry; |
-struct ClientContext; |
- |
-namespace file_system { |
-class DownloadOperation; |
-class OperationDelegate; |
-} |
- |
-namespace internal { |
- |
-class ChangeListLoader; |
-class EntryUpdatePerformer; |
-class FileCache; |
-class LoaderController; |
-class ResourceMetadata; |
- |
-// The SyncClient is used to synchronize pinned files on Drive and the |
-// cache on the local drive. |
-// |
-// If the user logs out before fetching of the pinned files is complete, this |
-// client resumes fetching operations next time the user logs in, based on |
-// the states left in the cache. |
-class SyncClient { |
- public: |
- SyncClient(base::SequencedTaskRunner* blocking_task_runner, |
- file_system::OperationDelegate* delegate, |
- JobScheduler* scheduler, |
- ResourceMetadata* metadata, |
- FileCache* cache, |
- LoaderController* loader_controller, |
- const base::FilePath& temporary_file_directory); |
- virtual ~SyncClient(); |
- |
- // Adds a fetch task. |
- void AddFetchTask(const std::string& local_id); |
- |
- // Removes a fetch task. |
- void RemoveFetchTask(const std::string& local_id); |
- |
- // Adds a update task. |
- void AddUpdateTask(const ClientContext& context, const std::string& local_id); |
- |
- // Waits for the update task to complete and runs the callback. |
- // Returns false if no task is found for the spcecified ID. |
- bool WaitForUpdateTaskToComplete(const std::string& local_id, |
- const FileOperationCallback& callback); |
- |
- // Starts processing the backlog (i.e. pinned-but-not-filed files and |
- // dirty-but-not-uploaded files). Kicks off retrieval of the local |
- // IDs of these files, and then starts the sync loop. |
- void StartProcessingBacklog(); |
- |
- // Starts checking the existing pinned files to see if these are |
- // up-to-date. If stale files are detected, the local IDs of these files |
- // are added and the sync loop is started. |
- void StartCheckingExistingPinnedFiles(); |
- |
- // Sets a delay for testing. |
- void set_delay_for_testing(const base::TimeDelta& delay) { |
- delay_ = delay; |
- } |
- |
- private: |
- // Types of sync tasks. |
- enum SyncType { |
- FETCH, // Fetch a file from the Drive server. |
- UPDATE, // Updates an entry's metadata or content on the Drive server. |
- }; |
- |
- // States of sync tasks. |
- enum SyncState { |
- SUSPENDED, // Task is currently inactive. |
- PENDING, // Task is going to run. |
- RUNNING, // Task is running. |
- }; |
- |
- typedef std::pair<SyncType, std::string> SyncTaskKey; |
- |
- struct SyncTask { |
- SyncTask(); |
- ~SyncTask(); |
- SyncState state; |
- ClientContext context; |
- base::Callback<base::Closure(const ClientContext& context)> task; |
- bool should_run_again; |
- base::Closure cancel_closure; |
- std::vector<SyncTaskKey> dependent_tasks; |
- std::vector<FileOperationCallback> waiting_callbacks; |
- }; |
- |
- typedef std::map<SyncTaskKey, SyncTask> SyncTasks; |
- |
- // Performs a FETCH task. |
- base::Closure PerformFetchTask(const std::string& local_id, |
- const ClientContext& context); |
- |
- // Adds a FETCH task. |
- void AddFetchTaskInternal(const std::string& local_id, |
- const base::TimeDelta& delay); |
- |
- // Performs a UPDATE task. |
- base::Closure PerformUpdateTask(const std::string& local_id, |
- const ClientContext& context); |
- |
- // Adds a UPDATE task. |
- void AddUpdateTaskInternal(const ClientContext& context, |
- const std::string& local_id, |
- const base::TimeDelta& delay); |
- |
- // Adds the given task. If the same task is found, does nothing. |
- void AddTask(const SyncTasks::key_type& key, |
- const SyncTask& task, |
- const base::TimeDelta& delay); |
- |
- // Called when a task is ready to start. |
- void StartTask(const SyncTasks::key_type& key); |
- void StartTaskAfterGetParentResourceEntry(const SyncTasks::key_type& key, |
- const ResourceEntry* parent, |
- FileError error); |
- |
- // Called when the local IDs of files in the backlog are obtained. |
- void OnGetLocalIdsOfBacklog(const std::vector<std::string>* to_fetch, |
- const std::vector<std::string>* to_update); |
- |
- // Adds fetch tasks. |
- void AddFetchTasks(const std::vector<std::string>* local_ids); |
- |
- // Called when a task is completed. |
- void OnTaskComplete(SyncType type, |
- const std::string& local_id, |
- FileError error); |
- |
- // Called when the file for |local_id| is fetched. |
- void OnFetchFileComplete(const std::string& local_id, |
- FileError error, |
- const base::FilePath& local_path, |
- scoped_ptr<ResourceEntry> entry); |
- |
- scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
- file_system::OperationDelegate* operation_delegate_; |
- ResourceMetadata* metadata_; |
- FileCache* cache_; |
- |
- // Used to fetch pinned files. |
- scoped_ptr<file_system::DownloadOperation> download_operation_; |
- |
- // Used to update entry metadata. |
- scoped_ptr<EntryUpdatePerformer> entry_update_performer_; |
- |
- // Sync tasks to be processed. |
- SyncTasks tasks_; |
- |
- // The delay is used for delaying processing tasks in AddTask(). |
- base::TimeDelta delay_; |
- |
- // The delay is used for delaying retry of tasks on server errors. |
- base::TimeDelta long_delay_; |
- |
- base::ThreadChecker thread_checker_; |
- |
- // Note: This should remain the last member so it'll be destroyed and |
- // invalidate its weak pointers before any other members are destroyed. |
- base::WeakPtrFactory<SyncClient> weak_ptr_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SyncClient); |
-}; |
- |
-} // namespace internal |
-} // namespace drive |
- |
-#endif // CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CLIENT_H_ |