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

Unified Diff: chrome/browser/chromeos/drive/resource_metadata_storage.h

Issue 17004011: drive: DriveIntegrationService owns ResourceMetadataStorage (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix a nit Created 7 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/drive/resource_metadata_storage.h
diff --git a/chrome/browser/chromeos/drive/resource_metadata_storage.h b/chrome/browser/chromeos/drive/resource_metadata_storage.h
index c4d12f1679384a6ae2673c91edeefaed928e1127..d5ae085b95ef73027f31fe34605d0da9f6811cd1 100644
--- a/chrome/browser/chromeos/drive/resource_metadata_storage.h
+++ b/chrome/browser/chromeos/drive/resource_metadata_storage.h
@@ -10,9 +10,14 @@
#include "base/basictypes.h"
#include "base/files/file_path.h"
+#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/chromeos/drive/drive.pb.h"
+namespace base {
+class SequencedTaskRunner;
+}
+
namespace leveldb {
class DB;
class Iterator;
@@ -23,6 +28,8 @@ namespace drive {
class ResourceEntry;
class ResourceMetadataHeader;
+namespace internal {
+
// Storage for ResourceMetadata which is responsible to manage resource
// entries and child-parent relationships between entries.
class ResourceMetadataStorage {
@@ -91,8 +98,13 @@ class ResourceMetadataStorage {
DISALLOW_COPY_AND_ASSIGN(CacheEntryIterator);
};
- explicit ResourceMetadataStorage(const base::FilePath& directory_path);
- virtual ~ResourceMetadataStorage();
+ ResourceMetadataStorage(const base::FilePath& directory_path,
+ base::SequencedTaskRunner* blocking_task_runner);
+
+ const base::FilePath& directory_path() const { return directory_path_; }
+
+ // Destroys this object.
+ void Destroy();
// Initializes this object.
bool Initialize();
@@ -139,6 +151,12 @@ class ResourceMetadataStorage {
private:
friend class ResourceMetadataStorageTest;
+ // To destruct this object, use Destroy().
+ ~ResourceMetadataStorage();
+
+ // Used to implement Destroy().
+ void DestroyOnBlockingPool();
+
// Returns a string to be used as a key for child entry.
static std::string GetChildEntryKey(const std::string& parent_resource_id,
const std::string& child_name);
@@ -158,9 +176,12 @@ class ResourceMetadataStorage {
// Entries stored in this storage.
scoped_ptr<leveldb::DB> resource_map_;
+ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
+
DISALLOW_COPY_AND_ASSIGN(ResourceMetadataStorage);
};
+} // namespace internal
} // namespace drive
#endif // CHROME_BROWSER_CHROMEOS_DRIVE_RESOURCE_METADATA_STORAGE_H_
« no previous file with comments | « chrome/browser/chromeos/drive/resource_metadata.cc ('k') | chrome/browser/chromeos/drive/resource_metadata_storage.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698