Index: webkit/browser/fileapi/copy_or_move_operation_delegate.h |
diff --git a/webkit/browser/fileapi/copy_or_move_operation_delegate.h b/webkit/browser/fileapi/copy_or_move_operation_delegate.h |
index e0a574d1e5de7c55e39d761b3665bba82a55685d..558f83c14bd77a50c2225f99c69acdd47a972738 100644 |
--- a/webkit/browser/fileapi/copy_or_move_operation_delegate.h |
+++ b/webkit/browser/fileapi/copy_or_move_operation_delegate.h |
@@ -1,162 +1,5 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Copyright 2014 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 WEBKIT_BROWSER_FILEAPI_COPY_OR_MOVE_OPERATION_DELEGATE_H_ |
-#define WEBKIT_BROWSER_FILEAPI_COPY_OR_MOVE_OPERATION_DELEGATE_H_ |
- |
-#include <set> |
-#include <stack> |
- |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/time/time.h" |
-#include "webkit/browser/fileapi/recursive_operation_delegate.h" |
- |
-namespace net { |
-class DrainableIOBuffer; |
-class IOBufferWithSize; |
-} |
- |
-namespace storage { |
-class FileStreamReader; |
-class ShareableFileReference; |
-} |
- |
-namespace storage { |
- |
-class CopyOrMoveFileValidator; |
-class FileStreamWriter; |
- |
-// A delegate class for recursive copy or move operations. |
-class CopyOrMoveOperationDelegate |
- : public RecursiveOperationDelegate { |
- public: |
- class CopyOrMoveImpl; |
- typedef FileSystemOperation::CopyProgressCallback CopyProgressCallback; |
- typedef FileSystemOperation::CopyOrMoveOption CopyOrMoveOption; |
- |
- enum OperationType { |
- OPERATION_COPY, |
- OPERATION_MOVE |
- }; |
- |
- // Helper to copy a file by reader and writer streams. |
- // Export for testing. |
- class STORAGE_EXPORT StreamCopyHelper { |
- public: |
- StreamCopyHelper( |
- scoped_ptr<storage::FileStreamReader> reader, |
- scoped_ptr<FileStreamWriter> writer, |
- bool need_flush, |
- int buffer_size, |
- const FileSystemOperation::CopyFileProgressCallback& |
- file_progress_callback, |
- const base::TimeDelta& min_progress_callback_invocation_span); |
- ~StreamCopyHelper(); |
- |
- void Run(const StatusCallback& callback); |
- |
- // Requests cancelling. After the cancelling is done, |callback| passed to |
- // Run will be called. |
- void Cancel(); |
- |
- private: |
- // Reads the content from the |reader_|. |
- void Read(const StatusCallback& callback); |
- void DidRead(const StatusCallback& callback, int result); |
- |
- // Writes the content in |buffer| to |writer_|. |
- void Write(const StatusCallback& callback, |
- scoped_refptr<net::DrainableIOBuffer> buffer); |
- void DidWrite(const StatusCallback& callback, |
- scoped_refptr<net::DrainableIOBuffer> buffer, int result); |
- |
- // Flushes the written content in |writer_|. |
- void Flush(const StatusCallback& callback, bool is_eof); |
- void DidFlush(const StatusCallback& callback, bool is_eof, int result); |
- |
- scoped_ptr<storage::FileStreamReader> reader_; |
- scoped_ptr<FileStreamWriter> writer_; |
- const bool need_flush_; |
- FileSystemOperation::CopyFileProgressCallback file_progress_callback_; |
- scoped_refptr<net::IOBufferWithSize> io_buffer_; |
- int64 num_copied_bytes_; |
- int64 previous_flush_offset_; |
- base::Time last_progress_callback_invocation_time_; |
- base::TimeDelta min_progress_callback_invocation_span_; |
- bool cancel_requested_; |
- base::WeakPtrFactory<StreamCopyHelper> weak_factory_; |
- DISALLOW_COPY_AND_ASSIGN(StreamCopyHelper); |
- }; |
- |
- CopyOrMoveOperationDelegate( |
- FileSystemContext* file_system_context, |
- const FileSystemURL& src_root, |
- const FileSystemURL& dest_root, |
- OperationType operation_type, |
- CopyOrMoveOption option, |
- const CopyProgressCallback& progress_callback, |
- const StatusCallback& callback); |
- virtual ~CopyOrMoveOperationDelegate(); |
- |
- // RecursiveOperationDelegate overrides: |
- virtual void Run() OVERRIDE; |
- virtual void RunRecursively() OVERRIDE; |
- virtual void ProcessFile(const FileSystemURL& url, |
- const StatusCallback& callback) OVERRIDE; |
- virtual void ProcessDirectory(const FileSystemURL& url, |
- const StatusCallback& callback) OVERRIDE; |
- virtual void PostProcessDirectory(const FileSystemURL& url, |
- const StatusCallback& callback) OVERRIDE; |
- |
- |
- protected: |
- virtual void OnCancel() OVERRIDE; |
- |
- private: |
- void DidCopyOrMoveFile(const FileSystemURL& src_url, |
- const FileSystemURL& dest_url, |
- const StatusCallback& callback, |
- CopyOrMoveImpl* impl, |
- base::File::Error error); |
- void DidTryRemoveDestRoot(const StatusCallback& callback, |
- base::File::Error error); |
- void ProcessDirectoryInternal(const FileSystemURL& src_url, |
- const FileSystemURL& dest_url, |
- const StatusCallback& callback); |
- void DidCreateDirectory(const FileSystemURL& src_url, |
- const FileSystemURL& dest_url, |
- const StatusCallback& callback, |
- base::File::Error error); |
- void PostProcessDirectoryAfterGetMetadata( |
- const FileSystemURL& src_url, |
- const StatusCallback& callback, |
- base::File::Error error, |
- const base::File::Info& file_info); |
- void PostProcessDirectoryAfterTouchFile(const FileSystemURL& src_url, |
- const StatusCallback& callback, |
- base::File::Error error); |
- void DidRemoveSourceForMove(const StatusCallback& callback, |
- base::File::Error error); |
- |
- void OnCopyFileProgress(const FileSystemURL& src_url, int64 size); |
- FileSystemURL CreateDestURL(const FileSystemURL& src_url) const; |
- |
- FileSystemURL src_root_; |
- FileSystemURL dest_root_; |
- bool same_file_system_; |
- OperationType operation_type_; |
- CopyOrMoveOption option_; |
- CopyProgressCallback progress_callback_; |
- StatusCallback callback_; |
- |
- std::set<CopyOrMoveImpl*> running_copy_set_; |
- base::WeakPtrFactory<CopyOrMoveOperationDelegate> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CopyOrMoveOperationDelegate); |
-}; |
- |
-} // namespace storage |
- |
-#endif // WEBKIT_BROWSER_FILEAPI_COPY_OR_MOVE_OPERATION_DELEGATE_H_ |
+#include "storage/browser/fileapi/copy_or_move_operation_delegate.h" |