| 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
|
|
|