| // Copyright 2013 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_WRITE_ON_CACHE_FILE_H_ |
| #define CHROME_BROWSER_CHROMEOS_DRIVE_WRITE_ON_CACHE_FILE_H_ |
| |
| #include "base/callback_forward.h" |
| #include "chrome/browser/chromeos/drive/file_errors.h" |
| |
| namespace base { |
| class FilePath; |
| } |
| |
| namespace drive { |
| |
| class FileSystemInterface; |
| |
| // Callback type for WriteOnCacheFile. |
| typedef base::Callback<void (FileError, const base::FilePath& path)> |
| WriteOnCacheFileCallback; |
| |
| // Creates (if needed) a file at |path|, brings it to the local cache, |
| // and invokes |callback| on blocking thread pool with the cache file path. |
| // The |callback| can write to the file at the path by normal local file I/O |
| // operations. After it returns, the written content is synced to the server. |
| // |
| // If non-empty |mime_type| is set and the file is created by this function |
| // call, the mime type for the entry is set to |mime_type|. Otherwise the type |
| // is automatically determined from |path|. |
| // |
| // Must be called from UI thread. |
| void WriteOnCacheFile(FileSystemInterface* file_system, |
| const base::FilePath& path, |
| const std::string& mime_type, |
| const WriteOnCacheFileCallback& callback); |
| |
| // Does the same thing as WriteOnCacheFile() and runs |reply| on the UI thread |
| // after the completion. |
| void WriteOnCacheFileAndReply(FileSystemInterface* file_system, |
| const base::FilePath& path, |
| const std::string& mime_type, |
| const WriteOnCacheFileCallback& callback, |
| const FileOperationCallback& reply); |
| |
| } // namespace drive |
| |
| #endif // CHROME_BROWSER_CHROMEOS_DRIVE_WRITE_ON_CACHE_FILE_H_ |