Commit d8f2ab9a authored by achuith@chromium.org's avatar achuith@chromium.org

Minor GDataDB fixes.

* Add AssertIOAllowed to GDataLevelDB.
* Remove entry_set_. Use AddEntry for ownership transfer to parent directory.
Review URL: https://chromiumcodereview.appspot.com/10407013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138315 0039d316-1c4b-4281-b951-d872f2087c98
parent e0ad0896
...@@ -61,7 +61,6 @@ class GDataDBTest : public testing::Test { ...@@ -61,7 +61,6 @@ class GDataDBTest : public testing::Test {
scoped_ptr<TestingProfile> profile_; scoped_ptr<TestingProfile> profile_;
scoped_ptr<GDataDB> gdata_db_; scoped_ptr<GDataDB> gdata_db_;
std::set<GDataEntry*> entry_set_;
}; };
void GDataDBTest::SetUp() { void GDataDBTest::SetUp() {
...@@ -102,8 +101,8 @@ void GDataDBTest::TestGetFound(const GDataEntry& source) { ...@@ -102,8 +101,8 @@ void GDataDBTest::TestGetFound(const GDataEntry& source) {
void GDataDBTest::InitDB() { void GDataDBTest::InitDB() {
int sequence_id = 1; int sequence_id = 1;
GDataRootDirectory root; GDataRootDirectory root;
GDataDirectory* dir1 = AddDirectory(NULL, &root, sequence_id++); GDataDirectory* dir1 = AddDirectory(&root, &root, sequence_id++);
GDataDirectory* dir2 = AddDirectory(NULL, &root, sequence_id++); GDataDirectory* dir2 = AddDirectory(&root, &root, sequence_id++);
GDataDirectory* dir3 = AddDirectory(dir1, &root, sequence_id++); GDataDirectory* dir3 = AddDirectory(dir1, &root, sequence_id++);
AddFile(dir1, &root, sequence_id++); AddFile(dir1, &root, sequence_id++);
...@@ -115,25 +114,23 @@ void GDataDBTest::InitDB() { ...@@ -115,25 +114,23 @@ void GDataDBTest::InitDB() {
AddFile(dir3, &root, sequence_id++); AddFile(dir3, &root, sequence_id++);
AddFile(dir3, &root, sequence_id++); AddFile(dir3, &root, sequence_id++);
STLDeleteElements(&entry_set_);
} }
GDataDirectory* GDataDBTest::AddDirectory(GDataDirectory* parent, GDataDirectory* GDataDBTest::AddDirectory(GDataDirectory* parent,
GDataRootDirectory* root, GDataRootDirectory* root,
int sequence_id) { int sequence_id) {
GDataDirectory* dir = new GDataDirectory(parent ? parent : root, root); GDataDirectory* dir = new GDataDirectory(parent, root);
const std::string dir_name = "dir" + base::IntToString(sequence_id); const std::string dir_name = "dir" + base::IntToString(sequence_id);
const std::string resource_id = std::string("dir_resource_id:") + const std::string resource_id = std::string("dir_resource_id:") +
dir_name; dir_name;
dir->set_title(dir_name); dir->set_title(dir_name);
dir->set_file_name(dir_name);
dir->set_resource_id(resource_id); dir->set_resource_id(resource_id);
parent->AddEntry(dir);
GDataDB::Status status = gdata_db_->Put(*dir); GDataDB::Status status = gdata_db_->Put(*dir);
EXPECT_EQ(GDataDB::DB_OK, status); EXPECT_EQ(GDataDB::DB_OK, status);
DVLOG(1) << "AddDirectory " << dir->GetFilePath().value() DVLOG(1) << "AddDirectory " << dir->GetFilePath().value()
<< ", " << resource_id; << ", " << resource_id;
entry_set_.insert(dir);
return dir; return dir;
} }
...@@ -145,13 +142,13 @@ GDataFile* GDataDBTest::AddFile(GDataDirectory* parent, ...@@ -145,13 +142,13 @@ GDataFile* GDataDBTest::AddFile(GDataDirectory* parent,
const std::string resource_id = std::string("file_resource_id:") + const std::string resource_id = std::string("file_resource_id:") +
title; title;
file->set_title(title); file->set_title(title);
file->set_file_name(title);
file->set_resource_id(resource_id); file->set_resource_id(resource_id);
parent->AddEntry(file);
GDataDB::Status status = gdata_db_->Put(*file); GDataDB::Status status = gdata_db_->Put(*file);
EXPECT_EQ(GDataDB::DB_OK, status); EXPECT_EQ(GDataDB::DB_OK, status);
DVLOG(1) << "AddFile " << file->GetFilePath().value() DVLOG(1) << "AddFile " << file->GetFilePath().value()
<< ", " << resource_id; << ", " << resource_id;
entry_set_.insert(file);
return file; return file;
} }
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <string> #include <string>
#include "base/logging.h" #include "base/logging.h"
#include "base/threading/thread_restrictions.h"
#include "chrome/browser/chromeos/gdata/gdata_files.h" #include "chrome/browser/chromeos/gdata/gdata_files.h"
#include "leveldb/write_batch.h" #include "leveldb/write_batch.h"
...@@ -52,6 +53,8 @@ GDataLevelDB::~GDataLevelDB() { ...@@ -52,6 +53,8 @@ GDataLevelDB::~GDataLevelDB() {
} }
void GDataLevelDB::Init(const FilePath& db_path) { void GDataLevelDB::Init(const FilePath& db_path) {
base::ThreadRestrictions::AssertIOAllowed();
leveldb::DB* level_db = NULL; leveldb::DB* level_db = NULL;
leveldb::Options options; leveldb::Options options;
options.create_if_missing = true; options.create_if_missing = true;
...@@ -65,6 +68,8 @@ void GDataLevelDB::Init(const FilePath& db_path) { ...@@ -65,6 +68,8 @@ void GDataLevelDB::Init(const FilePath& db_path) {
} }
GDataDB::Status GDataLevelDB::Put(const GDataEntry& entry) { GDataDB::Status GDataLevelDB::Put(const GDataEntry& entry) {
base::ThreadRestrictions::AssertIOAllowed();
// Write the serialized proto. // Write the serialized proto.
std::string serialized_proto; std::string serialized_proto;
entry.SerializeToString(&serialized_proto); entry.SerializeToString(&serialized_proto);
...@@ -87,6 +92,8 @@ GDataDB::Status GDataLevelDB::Put(const GDataEntry& entry) { ...@@ -87,6 +92,8 @@ GDataDB::Status GDataLevelDB::Put(const GDataEntry& entry) {
GDataDB::Status GDataLevelDB::DeleteByResourceId( GDataDB::Status GDataLevelDB::DeleteByResourceId(
const std::string& resource_id) { const std::string& resource_id) {
base::ThreadRestrictions::AssertIOAllowed();
scoped_ptr<GDataEntry> entry; scoped_ptr<GDataEntry> entry;
Status status = GetByResourceId(resource_id, &entry); Status status = GetByResourceId(resource_id, &entry);
if (status == DB_KEY_NOT_FOUND) if (status == DB_KEY_NOT_FOUND)
...@@ -107,6 +114,8 @@ GDataDB::Status GDataLevelDB::DeleteByResourceId( ...@@ -107,6 +114,8 @@ GDataDB::Status GDataLevelDB::DeleteByResourceId(
GDataDB::Status GDataLevelDB::DeleteByPath( GDataDB::Status GDataLevelDB::DeleteByPath(
const FilePath& path) { const FilePath& path) {
base::ThreadRestrictions::AssertIOAllowed();
std::string resource_id; std::string resource_id;
const Status status = ResourceIdForPath(path, &resource_id); const Status status = ResourceIdForPath(path, &resource_id);
if (status != DB_OK) if (status != DB_OK)
...@@ -116,6 +125,8 @@ GDataDB::Status GDataLevelDB::DeleteByPath( ...@@ -116,6 +125,8 @@ GDataDB::Status GDataLevelDB::DeleteByPath(
GDataDB::Status GDataLevelDB::GetByResourceId(const std::string& resource_id, GDataDB::Status GDataLevelDB::GetByResourceId(const std::string& resource_id,
scoped_ptr<GDataEntry>* entry) { scoped_ptr<GDataEntry>* entry) {
base::ThreadRestrictions::AssertIOAllowed();
entry->reset(); entry->reset();
std::string serialized_proto; std::string serialized_proto;
const std::string resource_id_key = ResourceIdToKey(resource_id); const std::string resource_id_key = ResourceIdToKey(resource_id);
...@@ -136,6 +147,8 @@ GDataDB::Status GDataLevelDB::GetByResourceId(const std::string& resource_id, ...@@ -136,6 +147,8 @@ GDataDB::Status GDataLevelDB::GetByResourceId(const std::string& resource_id,
GDataDB::Status GDataLevelDB::GetByPath(const FilePath& path, GDataDB::Status GDataLevelDB::GetByPath(const FilePath& path,
scoped_ptr<GDataEntry>* entry) { scoped_ptr<GDataEntry>* entry) {
base::ThreadRestrictions::AssertIOAllowed();
entry->reset(); entry->reset();
std::string resource_id; std::string resource_id;
const Status status = ResourceIdForPath(path, &resource_id); const Status status = ResourceIdForPath(path, &resource_id);
...@@ -146,6 +159,8 @@ GDataDB::Status GDataLevelDB::GetByPath(const FilePath& path, ...@@ -146,6 +159,8 @@ GDataDB::Status GDataLevelDB::GetByPath(const FilePath& path,
GDataDB::Status GDataLevelDB::ResourceIdForPath(const FilePath& path, GDataDB::Status GDataLevelDB::ResourceIdForPath(const FilePath& path,
std::string* resource_id) { std::string* resource_id) {
base::ThreadRestrictions::AssertIOAllowed();
const std::string path_key = PathToKey(path); const std::string path_key = PathToKey(path);
const leveldb::Status db_status = level_db_->Get( const leveldb::Status db_status = level_db_->Get(
leveldb::ReadOptions(), path_key, resource_id); leveldb::ReadOptions(), path_key, resource_id);
...@@ -167,6 +182,8 @@ GDataLevelDBIter::GDataLevelDBIter(scoped_ptr<leveldb::Iterator> level_db_iter, ...@@ -167,6 +182,8 @@ GDataLevelDBIter::GDataLevelDBIter(scoped_ptr<leveldb::Iterator> level_db_iter,
: level_db_iter_(level_db_iter.Pass()), : level_db_iter_(level_db_iter.Pass()),
db_(db), db_(db),
path_(path) { path_(path) {
base::ThreadRestrictions::AssertIOAllowed();
const std::string path_key = PathToKey(path); const std::string path_key = PathToKey(path);
level_db_iter_->Seek(leveldb::Slice(path_key)); level_db_iter_->Seek(leveldb::Slice(path_key));
} }
...@@ -176,6 +193,8 @@ GDataLevelDBIter::~GDataLevelDBIter() { ...@@ -176,6 +193,8 @@ GDataLevelDBIter::~GDataLevelDBIter() {
bool GDataLevelDBIter::GetNext(std::string* path, bool GDataLevelDBIter::GetNext(std::string* path,
scoped_ptr<GDataEntry>* entry) { scoped_ptr<GDataEntry>* entry) {
base::ThreadRestrictions::AssertIOAllowed();
DCHECK(path); DCHECK(path);
DCHECK(entry); DCHECK(entry);
path->clear(); path->clear();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment