Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: chrome/browser/chromeos/gdata/gdata_file_system.h

Issue 10116044: gdata: Support mounting archive files in GData cache. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: gdata: Support mounting archive files in GData cache. Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/chromeos/gdata/gdata_file_system.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/gdata/gdata_file_system.h
diff --git a/chrome/browser/chromeos/gdata/gdata_file_system.h b/chrome/browser/chromeos/gdata/gdata_file_system.h
index f3ddd15f918e2e212c853c0ac7180034a68573d5..fa39f3b9abd507f8234c7f9375afa43212dfcc62 100644
--- a/chrome/browser/chromeos/gdata/gdata_file_system.h
+++ b/chrome/browser/chromeos/gdata/gdata_file_system.h
@@ -76,6 +76,11 @@ typedef base::Callback<void(base::PlatformFileError error,
GDataFileType file_type)>
GetFileCallback;
+// Callback for SetMountedState.
+typedef base::Callback<void(base::PlatformFileError error,
+ const FilePath& file_path)>
+ SetMountedStateCallback;
+
// Used for file operations like removing files.
typedef base::Callback<void(base::PlatformFileError error,
base::ListValue* feed_list)>
@@ -192,6 +197,7 @@ class GDataFileSystemInterface {
enum CachedFileOrigin {
CACHED_FILE_FROM_SERVER = 0,
CACHED_FILE_LOCALLY_MODIFIED,
+ CACHED_FILE_MOUNTED,
};
// Enum defining type of file operation e.g. copy or move, etc.
@@ -358,6 +364,10 @@ class GDataFileSystemInterface {
virtual bool GetFileInfoByPath(const FilePath& gdata_file_path,
GDataFileProperties* properties) = 0;
+ // Returns true if the given path is under gdata cache directory, i.e.
+ // <user_profile_dir>/GCache/v1
+ virtual bool IsUnderGDataCacheDirectory(const FilePath& path) const = 0;
+
// Returns the tmp sub-directory under gdata cache directory, i.e.
// <user_profile_dir>/GCache/v1/tmp
virtual FilePath GetGDataCacheTmpDirectory() const = 0;
@@ -393,6 +403,12 @@ class GDataFileSystemInterface {
virtual void SetPinState(const FilePath& file_path, bool to_pin,
const FileOperationCallback& callback) = 0;
+ // Marks or unmarks a file as locally mounted.
+ // When marked as mounted, the file is prevented from being modified
+ // or evicted from cache.
+ virtual void SetMountedState(const FilePath& file_path, bool to_mount,
+ const SetMountedStateCallback& callback) = 0;
+
// Creates a new file from |entry| under |virtual_dir_path|. Stored its
// content from |file_content_path| into the cache.
virtual void AddUploadedFile(const FilePath& virtual_dir_path,
@@ -456,6 +472,7 @@ class GDataFileSystem : public GDataFileSystemInterface,
const GetCacheStateCallback& callback) OVERRIDE;
virtual bool GetFileInfoByPath(const FilePath& gdata_file_path,
GDataFileProperties* properties) OVERRIDE;
+ virtual bool IsUnderGDataCacheDirectory(const FilePath& path) const OVERRIDE;
virtual FilePath GetGDataCacheTmpDirectory() const OVERRIDE;
virtual FilePath GetGDataTempDownloadFolderPath() const OVERRIDE;
virtual FilePath GetGDataTempDocumentFolderPath() const OVERRIDE;
@@ -471,6 +488,10 @@ class GDataFileSystem : public GDataFileSystemInterface,
// Calls private Pin or Unpin methods with |callback|.
virtual void SetPinState(const FilePath& file_path, bool pin,
const FileOperationCallback& callback) OVERRIDE;
+ virtual void SetMountedState(
+ const FilePath& file_path,
+ bool to_mount,
+ const SetMountedStateCallback& callback) OVERRIDE;
virtual void AddUploadedFile(const FilePath& virtual_dir_path,
DocumentEntry* entry,
const FilePath& file_content_path,
@@ -1159,6 +1180,19 @@ class GDataFileSystem : public GDataFileSystemInterface,
FileOperationType file_operation_type,
base::PlatformFileError* error);
+ // Task posted from SetMountedState to modify cache state on the IO thread
+ // pool, which involves the following:
+ // - moves |source_path| to |dest_path|, where
+ // if we're mounting: |source_path| is the unmounted path and has .<md5>
+ // extension, and |dest_path| is the mounted path in persistent dir
+ // and has .<md5>.mounted extension;
+ // if we're unmounting: the opposite is true for the two paths, i.e.
+ // |dest_path| is the mounted path and |source_path| the unmounted path.
+ void SetMountedStateOnIOThreadPool(const FilePath& file_path,
+ bool to_mount,
+ base::PlatformFileError* error,
+ FilePath* cache_file_path);
+
// Task posted from MarkDirtyInCache to modify cache state on the IO thread
// pool, which involves the following:
// - moves |source_path| to |dest_path| in persistent dir, where
« no previous file with comments | « no previous file | chrome/browser/chromeos/gdata/gdata_file_system.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698