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

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

Issue 10800092: Database support for GDataDirectoryService. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 5 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/gdata/gdata_files.h
===================================================================
--- chrome/browser/chromeos/gdata/gdata_files.h (revision 148059)
+++ chrome/browser/chromeos/gdata/gdata_files.h (working copy)
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILES_H_
#define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILES_H_
+#include <leveldb/db.h>
#include <map>
#include <string>
@@ -21,6 +22,10 @@
#include "chrome/browser/profiles/profile_keyed_service.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
+namespace base {
+class SequencedTaskRunner;
+} // namespace base
+
namespace gdata {
class GDataFile;
@@ -322,6 +327,7 @@
DISALLOW_COPY_AND_ASSIGN(GDataDirectory);
};
+// TODO(achuith,hashimoto,satorux): Move this to a separate file.
// Class to handle GDataEntry* lookups, add/remove GDataEntry*.
class GDataDirectoryService {
public:
@@ -376,13 +382,33 @@
void SerializeToString(std::string* serialized_proto) const;
bool ParseFromString(const std::string& serialized_proto);
+ // Restore from and save to database.
+ void InitFromDB(const FilePath& db_path,
+ base::SequencedTaskRunner* blocking_task_runner);
satorux1 2012/07/24 16:30:34 Loading from DB can fail, right? If so, the caller
+ void SaveResourceMapToDB();
hashimoto 2012/07/24 08:41:51 Where is this method used?
+
private:
// A map table of file's resource string to its GDataFile* entry.
typedef std::map<std::string, GDataEntry*> ResourceMap;
+ // Map of resource id and serialized GDataEntry.
+ typedef std::map<std::string, std::string> SerializedMap;
- scoped_ptr<GDataDirectory> root_; // Stored in the serialized proto.
+ // Helper functions for restoring from and saving to the database.
+ void ReadFromDBOnBlockingThread(const FilePath& db_path,
+ SerializedMap* serialized_resources);
+ void InitDBOnBlockingThread(const FilePath& db_path);
+ void InitResourceMapOnUIThread(SerializedMap* serialized_resources);
+ void SaveSerializedToDBOnBlockingThread(
+ const SerializedMap& serialized_resources);
+
+ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
+
ResourceMap resource_map_;
+ scoped_ptr<leveldb::DB> level_db_;
+ FilePath db_path_;
+ scoped_ptr<GDataDirectory> root_; // Stored in the serialized proto.
+
base::Time last_serialized_;
size_t serialized_size_;
int largest_changestamp_; // Stored in the serialized proto.

Powered by Google App Engine
This is Rietveld 408576698