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

Unified Diff: sync/api/attachments/attachment_store.cc

Issue 986743004: [Sync] Refactor AttachmentStore classes. Introduce concept of referrer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 9 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
« no previous file with comments | « sync/api/attachments/attachment_store.h ('k') | sync/api/attachments/attachment_store_backend.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/api/attachments/attachment_store.cc
diff --git a/sync/api/attachments/attachment_store.cc b/sync/api/attachments/attachment_store.cc
index 91b3f956f85593c33daa3da4441907bc6b6f7415..7cf774e93175c5172a50363869baa2449731255a 100644
--- a/sync/api/attachments/attachment_store.cc
+++ b/sync/api/attachments/attachment_store.cc
@@ -10,16 +10,53 @@
#include "base/message_loop/message_loop.h"
#include "base/sequenced_task_runner.h"
#include "base/thread_task_runner_handle.h"
-#include "sync/internal_api/public/attachments/attachment_store_handle.h"
+#include "sync/internal_api/public/attachments/attachment_store_frontend.h"
#include "sync/internal_api/public/attachments/in_memory_attachment_store.h"
#include "sync/internal_api/public/attachments/on_disk_attachment_store.h"
namespace syncer {
-AttachmentStore::AttachmentStore() {}
-AttachmentStore::~AttachmentStore() {}
+AttachmentStore::AttachmentStore(
+ const scoped_refptr<AttachmentStoreFrontend>& frontend,
+ AttachmentReferrer referrer)
+ : frontend_(frontend), referrer_(referrer) {
+}
+
+AttachmentStore::~AttachmentStore() {
+}
+
+void AttachmentStore::Read(const AttachmentIdList& ids,
+ const ReadCallback& callback) {
+ frontend_->Read(ids, callback);
+}
-scoped_refptr<AttachmentStore> AttachmentStore::CreateInMemoryStore() {
+void AttachmentStore::Write(const AttachmentList& attachments,
+ const WriteCallback& callback) {
+ frontend_->Write(referrer_, attachments, callback);
+}
+
+void AttachmentStore::Drop(const AttachmentIdList& ids,
+ const DropCallback& callback) {
+ frontend_->Drop(referrer_, ids, callback);
+}
+
+void AttachmentStore::ReadMetadata(const AttachmentIdList& ids,
+ const ReadMetadataCallback& callback) {
+ frontend_->ReadMetadata(ids, callback);
+}
+
+void AttachmentStore::ReadAllMetadata(const ReadMetadataCallback& callback) {
+ frontend_->ReadAllMetadata(referrer_, callback);
+}
+
+scoped_ptr<AttachmentStore> AttachmentStore::CreateAttachmentStoreForSync()
+ const {
+ scoped_ptr<AttachmentStore> attachment_store(
+ new AttachmentStore(frontend_, SYNC));
+ return attachment_store.Pass();
+}
+
+scoped_ptr<AttachmentStore> AttachmentStore::CreateInMemoryStore() {
// Both frontend and backend of attachment store will live on current thread.
scoped_refptr<base::SingleThreadTaskRunner> runner;
if (base::ThreadTaskRunnerHandle::IsSet()) {
@@ -32,34 +69,38 @@ scoped_refptr<AttachmentStore> AttachmentStore::CreateInMemoryStore() {
}
scoped_ptr<AttachmentStoreBackend> backend(
new InMemoryAttachmentStore(runner));
- return scoped_refptr<AttachmentStore>(
- new AttachmentStoreHandle(backend.Pass(), runner));
+ scoped_refptr<AttachmentStoreFrontend> frontend(
+ new AttachmentStoreFrontend(backend.Pass(), runner));
+ scoped_ptr<AttachmentStore> attachment_store(
+ new AttachmentStore(frontend, MODEL_TYPE));
+ return attachment_store.Pass();
}
-scoped_refptr<AttachmentStore> AttachmentStore::CreateOnDiskStore(
+scoped_ptr<AttachmentStore> AttachmentStore::CreateOnDiskStore(
const base::FilePath& path,
const scoped_refptr<base::SequencedTaskRunner>& backend_task_runner,
const InitCallback& callback) {
scoped_ptr<OnDiskAttachmentStore> backend(
new OnDiskAttachmentStore(base::ThreadTaskRunnerHandle::Get(), path));
- scoped_refptr<AttachmentStore> attachment_store =
- new AttachmentStoreHandle(backend.Pass(), backend_task_runner);
- attachment_store->Init(callback);
-
- return attachment_store;
-}
-
-AttachmentStoreBackend::AttachmentStoreBackend(
- const scoped_refptr<base::SequencedTaskRunner>& callback_task_runner)
- : callback_task_runner_(callback_task_runner) {
-}
+ scoped_refptr<AttachmentStoreFrontend> frontend =
+ new AttachmentStoreFrontend(backend.Pass(), backend_task_runner);
+ scoped_ptr<AttachmentStore> attachment_store(
+ new AttachmentStore(frontend, MODEL_TYPE));
+ frontend->Init(callback);
-AttachmentStoreBackend::~AttachmentStoreBackend() {
+ return attachment_store.Pass();
}
-void AttachmentStoreBackend::PostCallback(const base::Closure& callback) {
- callback_task_runner_->PostTask(FROM_HERE, callback);
+scoped_ptr<AttachmentStore> AttachmentStore::CreateMockStoreForTest(
+ scoped_ptr<AttachmentStoreBackend> backend) {
+ scoped_refptr<base::SingleThreadTaskRunner> runner =
+ base::ThreadTaskRunnerHandle::Get();
+ scoped_refptr<AttachmentStoreFrontend> attachment_store_frontend(
+ new AttachmentStoreFrontend(backend.Pass(), runner));
+ scoped_ptr<AttachmentStore> attachment_store(
+ new AttachmentStore(attachment_store_frontend, MODEL_TYPE));
+ return attachment_store.Pass();
}
} // namespace syncer
« no previous file with comments | « sync/api/attachments/attachment_store.h ('k') | sync/api/attachments/attachment_store_backend.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698