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

Unified Diff: components/sync_driver/generic_change_processor.cc

Issue 548373003: Move AttachmentStore ownership to datatype (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't create AttachmentService in GenericChangeProcessor if AttachmentStore is NULL Created 6 years, 3 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: components/sync_driver/generic_change_processor.cc
diff --git a/components/sync_driver/generic_change_processor.cc b/components/sync_driver/generic_change_processor.cc
index c44ce72a1bd23d1fa5a8e377c50903bc9ef83a6a..170378a746e8b3fac7a2356fa89467da53c91d7b 100644
--- a/components/sync_driver/generic_change_processor.cc
+++ b/components/sync_driver/generic_change_processor.cc
@@ -92,19 +92,27 @@ GenericChangeProcessor::GenericChangeProcessor(
const base::WeakPtr<syncer::SyncableService>& local_service,
const base::WeakPtr<syncer::SyncMergeResult>& merge_result,
syncer::UserShare* user_share,
- SyncApiComponentFactory* sync_factory)
+ SyncApiComponentFactory* sync_factory,
+ const scoped_refptr<syncer::AttachmentStore>& attachment_store)
: ChangeProcessor(error_handler),
local_service_(local_service),
merge_result_(merge_result),
- share_handle_(user_share),
- attachment_service_(
- sync_factory->CreateAttachmentService(*user_share, this)),
- attachment_service_weak_ptr_factory_(attachment_service_.get()),
- attachment_service_proxy_(
- base::MessageLoopProxy::current(),
- attachment_service_weak_ptr_factory_.GetWeakPtr()) {
+ share_handle_(user_share) {
DCHECK(CalledOnValidThread());
- DCHECK(attachment_service_);
+ if (attachment_store) {
maniscalco 2014/09/08 21:56:35 I thought scoped_refptr no longer automatically co
pavely 2014/09/09 23:52:30 Done.
+ attachment_service_ = sync_factory->CreateAttachmentService(
+ attachment_store, *user_share, this);
+ attachment_service_weak_ptr_factory_.reset(
+ new base::WeakPtrFactory<syncer::AttachmentService>(
+ attachment_service_.get()));
+ attachment_service_proxy_.reset(new syncer::AttachmentServiceProxy(
+ base::MessageLoopProxy::current(),
+ attachment_service_weak_ptr_factory_->GetWeakPtr()));
+ } else {
+ attachment_service_proxy_.reset(new syncer::AttachmentServiceProxy(
+ base::MessageLoopProxy::current(),
+ base::WeakPtr<syncer::AttachmentService>()));
+ }
}
GenericChangeProcessor::~GenericChangeProcessor() {
@@ -136,7 +144,7 @@ void GenericChangeProcessor::ApplyChangesFromSyncModel(
specifics ? *specifics : it->specifics,
base::Time(),
empty_list_of_attachment_ids,
- attachment_service_proxy_)));
+ *attachment_service_proxy_)));
} else {
syncer::SyncChange::SyncChangeType action =
(it->action == syncer::ChangeRecord::ACTION_ADD) ?
@@ -156,7 +164,7 @@ void GenericChangeProcessor::ApplyChangesFromSyncModel(
syncer_changes_.push_back(syncer::SyncChange(
FROM_HERE,
action,
- BuildRemoteSyncData(it->id, read_node, attachment_service_proxy_)));
+ BuildRemoteSyncData(it->id, read_node, *attachment_service_proxy_)));
}
}
}
@@ -253,7 +261,7 @@ syncer::SyncError GenericChangeProcessor::GetAllSyncDataReturnError(
return error;
}
current_sync_data->push_back(BuildRemoteSyncData(
- sync_child_node.GetId(), sync_child_node, attachment_service_proxy_));
+ sync_child_node.GetId(), sync_child_node, *attachment_service_proxy_));
}
return syncer::SyncError();
}

Powered by Google App Engine
This is Rietveld 408576698