Index: webkit/fileapi/syncable/syncable_file_operation_runner.cc |
diff --git a/webkit/fileapi/syncable/syncable_file_operation_runner.cc b/webkit/fileapi/syncable/syncable_file_operation_runner.cc |
deleted file mode 100644 |
index 91fca3ebe74a3def61ba6854206992a6843a6b07..0000000000000000000000000000000000000000 |
--- a/webkit/fileapi/syncable/syncable_file_operation_runner.cc |
+++ /dev/null |
@@ -1,107 +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. |
- |
-#include "webkit/fileapi/syncable/syncable_file_operation_runner.h" |
- |
-#include <algorithm> |
-#include <functional> |
- |
-#include "base/callback.h" |
-#include "base/stl_util.h" |
-#include "webkit/fileapi/syncable/local_file_sync_status.h" |
- |
-using fileapi::FileSystemURL; |
- |
-namespace sync_file_system { |
- |
-// SyncableFileOperationRunner::Task ------------------------------------------- |
- |
-// static |
-void SyncableFileOperationRunner::Task::CancelAndDelete( |
- SyncableFileOperationRunner::Task* task) { |
- task->Cancel(); |
- delete task; |
-} |
- |
-bool SyncableFileOperationRunner::Task::IsRunnable( |
- LocalFileSyncStatus* status) const { |
- for (size_t i = 0; i < target_paths().size(); ++i) { |
- if (!status->IsWritable(target_paths()[i])) |
- return false; |
- } |
- return true; |
-} |
- |
-void SyncableFileOperationRunner::Task::Start(LocalFileSyncStatus* status) { |
- for (size_t i = 0; i < target_paths().size(); ++i) { |
- DCHECK(status->IsWritable(target_paths()[i])); |
- status->StartWriting(target_paths()[i]); |
- } |
- Run(); |
-} |
- |
-// SyncableFileOperationRunner ------------------------------------------------- |
- |
-SyncableFileOperationRunner::SyncableFileOperationRunner( |
- int64 max_inflight_tasks, |
- LocalFileSyncStatus* sync_status) |
- : sync_status_(sync_status), |
- max_inflight_tasks_(max_inflight_tasks), |
- num_inflight_tasks_(0) { |
- DCHECK(CalledOnValidThread()); |
- sync_status_->AddObserver(this); |
-} |
- |
-SyncableFileOperationRunner::~SyncableFileOperationRunner() { |
- DCHECK(CalledOnValidThread()); |
- for_each(pending_tasks_.begin(), pending_tasks_.end(), |
- SyncableFileOperationRunner::Task::CancelAndDelete); |
-} |
- |
-void SyncableFileOperationRunner::OnSyncEnabled(const FileSystemURL& url) { |
-} |
- |
-void SyncableFileOperationRunner::OnWriteEnabled(const FileSystemURL& url) { |
- DCHECK(CalledOnValidThread()); |
- RunNextRunnableTask(); |
-} |
- |
-void SyncableFileOperationRunner::PostOperationTask(scoped_ptr<Task> task) { |
- DCHECK(CalledOnValidThread()); |
- pending_tasks_.push_back(task.release()); |
- RunNextRunnableTask(); |
-} |
- |
-void SyncableFileOperationRunner::RunNextRunnableTask() { |
- DCHECK(CalledOnValidThread()); |
- for (std::list<Task*>::iterator iter = pending_tasks_.begin(); |
- iter != pending_tasks_.end() && ShouldStartMoreTasks();) { |
- if ((*iter)->IsRunnable(sync_status())) { |
- ++num_inflight_tasks_; |
- DCHECK_GE(num_inflight_tasks_, 1); |
- scoped_ptr<Task> task(*iter); |
- pending_tasks_.erase(iter++); |
- task->Start(sync_status()); |
- continue; |
- } |
- ++iter; |
- } |
-} |
- |
-void SyncableFileOperationRunner::OnOperationCompleted( |
- const std::vector<FileSystemURL>& target_paths) { |
- --num_inflight_tasks_; |
- DCHECK_GE(num_inflight_tasks_, 0); |
- for (size_t i = 0; i < target_paths.size(); ++i) { |
- DCHECK(sync_status()->IsWriting(target_paths[i])); |
- sync_status()->EndWriting(target_paths[i]); |
- } |
- RunNextRunnableTask(); |
-} |
- |
-bool SyncableFileOperationRunner::ShouldStartMoreTasks() const { |
- return num_inflight_tasks_ < max_inflight_tasks_; |
-} |
- |
-} // namespace sync_file_system |