Index: components/leveldb_proto/testing/fake_db.h |
diff --git a/components/leveldb_proto/testing/fake_db.h b/components/leveldb_proto/testing/fake_db.h |
index e67ceba7a8ccc238a4af9027b91725ac297c2ac5..bd9efb571a465f4e3b05d4b98e63d073d3ca6498 100644 |
--- a/components/leveldb_proto/testing/fake_db.h |
+++ b/components/leveldb_proto/testing/fake_db.h |
@@ -39,6 +39,8 @@ class FakeDB : public ProtoDatabase<T> { |
const typename ProtoDatabase<T>::UpdateCallback& callback) override; |
void LoadEntries( |
const typename ProtoDatabase<T>::LoadCallback& callback) override; |
+ void LoadKeys( |
+ const typename ProtoDatabase<T>::LoadKeysCallback& callback) override; |
void GetEntry( |
const std::string& key, |
const typename ProtoDatabase<T>::GetCallback& callback) override; |
@@ -51,6 +53,8 @@ class FakeDB : public ProtoDatabase<T> { |
void LoadCallback(bool success); |
+ void LoadKeysCallback(bool success); |
+ |
void GetCallback(bool success); |
void UpdateCallback(bool success); |
@@ -63,6 +67,11 @@ class FakeDB : public ProtoDatabase<T> { |
std::unique_ptr<typename std::vector<T>> entries, |
bool success); |
+ static void RunLoadKeysCallback( |
+ const typename ProtoDatabase<T>::LoadKeysCallback& callback, |
+ std::unique_ptr<std::vector<std::string>> keys, |
+ bool success); |
+ |
static void RunGetCallback( |
const typename ProtoDatabase<T>::GetCallback& callback, |
std::unique_ptr<T> entry, |
@@ -73,6 +82,7 @@ class FakeDB : public ProtoDatabase<T> { |
Callback init_callback_; |
Callback load_callback_; |
+ Callback load_keys_callback_; |
Callback get_callback_; |
Callback update_callback_; |
}; |
@@ -118,6 +128,18 @@ void FakeDB<T>::LoadEntries( |
} |
template <typename T> |
+void FakeDB<T>::LoadKeys( |
+ const typename ProtoDatabase<T>::LoadKeysCallback& callback) { |
+ std::unique_ptr<std::vector<std::string>> keys( |
+ new std::vector<std::string>()); |
+ for (const auto& pair : *db_) |
+ keys->push_back(pair.first); |
+ |
+ load_keys_callback_ = |
+ base::Bind(RunLoadKeysCallback, callback, base::Passed(&keys)); |
+} |
+ |
+template <typename T> |
void FakeDB<T>::GetEntry( |
const std::string& key, |
const typename ProtoDatabase<T>::GetCallback& callback) { |
@@ -152,6 +174,12 @@ void FakeDB<T>::LoadCallback(bool success) { |
} |
template <typename T> |
+void FakeDB<T>::LoadKeysCallback(bool success) { |
+ load_keys_callback_.Run(success); |
+ load_keys_callback_.Reset(); |
+} |
+ |
+template <typename T> |
void FakeDB<T>::GetCallback(bool success) { |
get_callback_.Run(success); |
get_callback_.Reset(); |
@@ -174,6 +202,15 @@ void FakeDB<T>::RunLoadCallback( |
// static |
template <typename T> |
+void FakeDB<T>::RunLoadKeysCallback( |
+ const typename ProtoDatabase<T>::LoadKeysCallback& callback, |
+ std::unique_ptr<std::vector<std::string>> keys, |
+ bool success) { |
+ callback.Run(success, std::move(keys)); |
+} |
+ |
+// static |
+template <typename T> |
void FakeDB<T>::RunGetCallback( |
const typename ProtoDatabase<T>::GetCallback& callback, |
std::unique_ptr<T> entry, |