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

Unified Diff: chrome/browser/chromeos/file_manager/snapshot_manager.h

Issue 339323002: Implement snapshotting for non-Drive non-local file systems. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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
Index: chrome/browser/chromeos/file_manager/snapshot_manager.h
diff --git a/chrome/browser/chromeos/file_manager/snapshot_manager.h b/chrome/browser/chromeos/file_manager/snapshot_manager.h
new file mode 100644
index 0000000000000000000000000000000000000000..a57a39c53cb4eab5165647d007431bea45f1e45d
--- /dev/null
+++ b/chrome/browser/chromeos/file_manager/snapshot_manager.h
@@ -0,0 +1,46 @@
+// 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 CHROME_BROWSER_CHROMEOS_FILE_MANAGER_SNAPSHOT_MANAGER_H_
+#define CHROME_BROWSER_CHROMEOS_FILE_MANAGER_SNAPSHOT_MANAGER_H_
+
+#include "base/callback_forward.h"
+#include "base/files/file_path.h"
+#include "base/memory/ref_counted.h"
+
+class Profile;
+
+namespace base {
+class SequencedTaskRunner;
+} // namespace base
+
+namespace file_manager {
+
+// Utility class for creating a snapshot file copy of a file system file.
+// Contrary to the underlying implementation of fileapi's CreateSnapshotFile,
+// the taken snapshot file will not be removed immediately. The life time is
+// managed by this manager class.
hashimoto 2014/06/19 02:26:01 Why should we create a copy of the snapshot instea
kinaba 2014/06/19 04:41:56 That sounds far more better! Rewrote in the sugges
+class SnapshotManager {
+ public:
+ // The callback type for CreateManagedSnapshot.
+ typedef base::Callback<void(const base::FilePath&)> LocalPathCallback;
+
+ explicit SnapshotManager(Profile* profile);
+ ~SnapshotManager();
+
+ // Creates a snapshot file copy of a file system file |absolute_file_path| and
+ // returns back to |callback|. Returns empty path for failure.
+ void CreateManagedSnapshot(const base::FilePath& absolute_file_path,
+ const LocalPathCallback& callback);
+
+ private:
+ Profile* profile_;
+ scoped_refptr<base::SequencedTaskRunner> task_runner_;
+ base::FilePath base_path_;
+ DISALLOW_COPY_AND_ASSIGN(SnapshotManager);
+};
+
+} // namespace file_manager
+
+#endif // CHROME_BROWSER_CHROMEOS_FILE_MANAGER_SNAPSHOT_MANAGER_H_

Powered by Google App Engine
This is Rietveld 408576698