Index: chrome/browser/sync/internal_api/sync_manager.cc |
diff --git a/chrome/browser/sync/internal_api/sync_manager.cc b/chrome/browser/sync/internal_api/sync_manager.cc |
index 2271fb05c0f205f0f699ca9c3125463a0e0479ee..b7fcb1721cca7fa545eb054935a48b7043b3baad 100644 |
--- a/chrome/browser/sync/internal_api/sync_manager.cc |
+++ b/chrome/browser/sync/internal_api/sync_manager.cc |
@@ -207,7 +207,7 @@ class SyncManager::SyncInternal |
// Conditionally sets the flag in the Nigori node which instructs other |
// clients to start syncing tabs. |
- void MaybeSetSyncTabsInNigoriNode(const syncable::ModelTypeSet enabled_types); |
+ void MaybeSetSyncTabsInNigoriNode(syncable::ModelEnumSet enabled_types); |
// Tell the sync engine to start the syncing process. |
void StartSyncingNormally(); |
@@ -243,8 +243,8 @@ class SyncManager::SyncInternal |
// builds the list of sync-engine initiated changes that will be forwarded to |
// the SyncManager's Observers. |
virtual void HandleTransactionCompleteChangeEvent( |
- const ModelTypeBitSet& models_with_changes) OVERRIDE; |
- virtual ModelTypeBitSet HandleTransactionEndingChangeEvent( |
+ syncable::ModelEnumSet models_with_changes) OVERRIDE; |
+ virtual syncable::ModelEnumSet HandleTransactionEndingChangeEvent( |
const ImmutableWriteTransactionInfo& write_transaction_info, |
syncable::BaseTransaction* trans) OVERRIDE; |
virtual void HandleCalculateChangesChangeEventFromSyncApi( |
@@ -642,7 +642,7 @@ void SyncManager::UpdateEnabledTypes() { |
} |
void SyncManager::MaybeSetSyncTabsInNigoriNode( |
- const syncable::ModelTypeSet enabled_types) { |
+ syncable::ModelEnumSet enabled_types) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
data_->MaybeSetSyncTabsInNigoriNode(enabled_types); |
} |
@@ -711,7 +711,9 @@ void SyncManager::RequestConfig(const syncable::ModelTypeBitSet& types, |
return; |
} |
StartConfigurationMode(base::Closure()); |
- data_->scheduler()->ScheduleConfig(types, GetSourceFromReason(reason)); |
+ data_->scheduler()->ScheduleConfig( |
+ syncable::ModelTypeBitSetToEnumSet(types), |
+ GetSourceFromReason(reason)); |
} |
void SyncManager::StartConfigurationMode(const base::Closure& callback) { |
@@ -965,11 +967,7 @@ void SyncManager::SyncInternal::UpdateEnabledTypes() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
ModelSafeRoutingInfo routes; |
registrar_->GetModelSafeRoutingInfo(&routes); |
- syncable::ModelTypeSet enabled_types; |
- for (ModelSafeRoutingInfo::const_iterator it = routes.begin(); |
- it != routes.end(); ++it) { |
- enabled_types.insert(it->first); |
- } |
+ const syncable::ModelEnumSet enabled_types = GetRoutingInfoTypes(routes); |
sync_notifier_->UpdateEnabledTypes(enabled_types); |
if (CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnableSyncTabsForOtherClients)) { |
@@ -978,11 +976,11 @@ void SyncManager::SyncInternal::UpdateEnabledTypes() { |
} |
void SyncManager::SyncInternal::MaybeSetSyncTabsInNigoriNode( |
- const syncable::ModelTypeSet enabled_types) { |
+ const syncable::ModelEnumSet enabled_types) { |
// The initialized_ check is to ensure that we don't CHECK in GetUserShare |
// when this is called on start-up. It's ok to ignore that case, since |
// presumably this would've run when the user originally enabled sessions. |
- if (initialized_ && enabled_types.count(syncable::SESSIONS) > 0) { |
+ if (initialized_ && enabled_types.Has(syncable::SESSIONS)) { |
WriteTransaction trans(FROM_HERE, GetUserShare()); |
WriteNode node(&trans); |
if (!node.InitByTagLookup(kNigoriTag)) { |
@@ -1353,7 +1351,7 @@ void SyncManager::SyncInternal::OnServerConnectionEvent( |
} |
void SyncManager::SyncInternal::HandleTransactionCompleteChangeEvent( |
- const syncable::ModelTypeBitSet& models_with_changes) { |
+ syncable::ModelEnumSet models_with_changes) { |
// This notification happens immediately after the transaction mutex is |
// released. This allows work to be performed without blocking other threads |
// from acquiring a transaction. |
@@ -1361,24 +1359,23 @@ void SyncManager::SyncInternal::HandleTransactionCompleteChangeEvent( |
return; |
// Call commit. |
- for (int i = 0; i < syncable::MODEL_TYPE_COUNT; ++i) { |
- const syncable::ModelType type = syncable::ModelTypeFromInt(i); |
- if (models_with_changes.test(type)) { |
- change_delegate_->OnChangesComplete(type); |
- change_observer_.Call(FROM_HERE, |
- &SyncManager::ChangeObserver::OnChangesComplete, type); |
- } |
+ for (syncable::ModelEnumSet::Iterator it = models_with_changes.First(); |
+ it.Good(); it.Inc()) { |
+ change_delegate_->OnChangesComplete(it.Get()); |
+ change_observer_.Call( |
+ FROM_HERE, &SyncManager::ChangeObserver::OnChangesComplete, it.Get()); |
} |
} |
-ModelTypeBitSet SyncManager::SyncInternal::HandleTransactionEndingChangeEvent( |
- const ImmutableWriteTransactionInfo& write_transaction_info, |
- syncable::BaseTransaction* trans) { |
+syncable::ModelEnumSet |
+ SyncManager::SyncInternal::HandleTransactionEndingChangeEvent( |
+ const ImmutableWriteTransactionInfo& write_transaction_info, |
+ syncable::BaseTransaction* trans) { |
// This notification happens immediately before a syncable WriteTransaction |
// falls out of scope. It happens while the channel mutex is still held, |
// and while the transaction mutex is held, so it cannot be re-entrant. |
if (!change_delegate_ || ChangeBuffersAreEmpty()) |
- return ModelTypeBitSet(); |
+ return syncable::ModelEnumSet(); |
// This will continue the WriteTransaction using a read only wrapper. |
// This is the last chance for read to occur in the WriteTransaction |
@@ -1386,7 +1383,7 @@ ModelTypeBitSet SyncManager::SyncInternal::HandleTransactionEndingChangeEvent( |
// underlying transaction. |
ReadTransaction read_trans(GetUserShare(), trans); |
- syncable::ModelTypeBitSet models_with_changes; |
+ syncable::ModelEnumSet models_with_changes; |
for (int i = syncable::FIRST_REAL_MODEL_TYPE; |
i < syncable::MODEL_TYPE_COUNT; ++i) { |
const syncable::ModelType type = syncable::ModelTypeFromInt(i); |
@@ -1404,7 +1401,7 @@ ModelTypeBitSet SyncManager::SyncInternal::HandleTransactionEndingChangeEvent( |
change_observer_.Call(FROM_HERE, |
&SyncManager::ChangeObserver::OnChangesApplied, |
type, write_transaction_info.Get().id, ordered_changes); |
- models_with_changes.set(i, true); |
+ models_with_changes.Put(type); |
} |
change_buffers_[i].Clear(); |
} |
@@ -1541,7 +1538,7 @@ void SyncManager::SyncInternal::RequestNudge( |
if (scheduler()) |
scheduler()->ScheduleNudge( |
TimeDelta::FromMilliseconds(0), browser_sync::NUDGE_SOURCE_LOCAL, |
- ModelTypeBitSet(), location); |
+ syncable::ModelEnumSet(), location); |
} |
void SyncManager::SyncInternal::RequestNudgeForDataType( |
@@ -1565,11 +1562,9 @@ void SyncManager::SyncInternal::RequestNudgeForDataType( |
TimeDelta::FromMilliseconds(kDefaultNudgeDelayMilliseconds); |
break; |
} |
- syncable::ModelTypeBitSet types; |
- types.set(type); |
scheduler()->ScheduleNudge(nudge_delay, |
browser_sync::NUDGE_SOURCE_LOCAL, |
- types, |
+ syncable::ModelEnumSet(type), |
nudge_location); |
} |
@@ -1631,8 +1626,9 @@ void SyncManager::SyncInternal::OnSyncEngineEvent( |
if (is_notifiable_commit) { |
allstatus_.IncrementNotifiableCommits(); |
if (sync_notifier_.get()) { |
- const syncable::ModelTypeSet& changed_types = |
- syncable::ModelTypePayloadMapToSet(event.snapshot->source.types); |
+ const syncable::ModelEnumSet changed_types = |
+ syncable::ModelTypePayloadMapToEnumSet( |
+ event.snapshot->source.types); |
sync_notifier_->SendNotification(changed_types); |
} else { |
DVLOG(1) << "Not sending notification: sync_notifier_ is NULL"; |
@@ -2019,10 +2015,10 @@ void SyncManager::TriggerOnNotificationStateChangeForTest( |
} |
void SyncManager::TriggerOnIncomingNotificationForTest( |
- const syncable::ModelTypeBitSet& model_types) { |
+ syncable::ModelEnumSet model_types) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
syncable::ModelTypePayloadMap model_types_with_payloads = |
- syncable::ModelTypePayloadMapFromBitSet(model_types, |
+ syncable::ModelTypePayloadMapFromEnumSet(model_types, |
std::string()); |
data_->OnIncomingNotification(model_types_with_payloads); |