| Index: sync/internal_api/non_blocking_type_processor.cc
|
| diff --git a/sync/internal_api/non_blocking_type_processor.cc b/sync/internal_api/non_blocking_type_processor.cc
|
| index 8fd0d2775de57c03af3bde4d6d4a3a6fbbc5007e..d426443a03c961d3824a18a4873e1b7c2ec66a93 100644
|
| --- a/sync/internal_api/non_blocking_type_processor.cc
|
| +++ b/sync/internal_api/non_blocking_type_processor.cc
|
| @@ -11,14 +11,22 @@
|
| namespace syncer {
|
|
|
| NonBlockingTypeProcessor::NonBlockingTypeProcessor(ModelType type)
|
| - : type_(type), enabled_(false), weak_ptr_factory_(this) {}
|
| + : type_(type),
|
| + is_preferred_(false),
|
| + is_connected_(false),
|
| + weak_ptr_factory_(this) {}
|
|
|
| NonBlockingTypeProcessor::~NonBlockingTypeProcessor() {
|
| }
|
|
|
| -bool NonBlockingTypeProcessor::IsEnabled() const {
|
| +bool NonBlockingTypeProcessor::IsPreferred() const {
|
| DCHECK(CalledOnValidThread());
|
| - return enabled_;
|
| + return is_preferred_;
|
| +}
|
| +
|
| +bool NonBlockingTypeProcessor::IsConnected() const {
|
| + DCHECK(CalledOnValidThread());
|
| + return is_connected_;
|
| }
|
|
|
| ModelType NonBlockingTypeProcessor::GetModelType() const {
|
| @@ -28,15 +36,19 @@ ModelType NonBlockingTypeProcessor::GetModelType() const {
|
|
|
| void NonBlockingTypeProcessor::Enable(SyncCoreProxy* core_proxy) {
|
| DCHECK(CalledOnValidThread());
|
| - core_proxy->ConnectTypeToCore(
|
| - GetModelType(),
|
| - AsWeakPtr());
|
| + is_preferred_ = true;
|
| + core_proxy->ConnectTypeToCore(GetModelType(), AsWeakPtr());
|
| }
|
|
|
| void NonBlockingTypeProcessor::Disable() {
|
| DCHECK(CalledOnValidThread());
|
| - enabled_ = false;
|
| - weak_ptr_factory_.InvalidateWeakPtrs();
|
| + is_preferred_ = false;
|
| + Disconnect();
|
| +}
|
| +
|
| +void NonBlockingTypeProcessor::Disconnect() {
|
| + DCHECK(CalledOnValidThread());
|
| + is_connected_ = false;
|
| core_ = base::WeakPtr<NonBlockingTypeProcessorCore>();
|
| sync_thread_ = scoped_refptr<base::SequencedTaskRunner>();
|
| }
|
| @@ -50,7 +62,7 @@ void NonBlockingTypeProcessor::OnConnect(
|
| base::WeakPtr<NonBlockingTypeProcessorCore> core,
|
| scoped_refptr<base::SequencedTaskRunner> sync_thread) {
|
| DCHECK(CalledOnValidThread());
|
| - enabled_ = true;
|
| + is_connected_ = true;
|
| core_ = core;
|
| sync_thread_ = sync_thread;
|
| }
|
|
|