Chromium Code Reviews| 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; |
|
Nicolas Zea
2011/12/06 19:31:22
Rewrite to iterate over ModelEnumSet::All(), and r
Nicolas Zea
2011/12/06 19:40:16
Actually, disregard, I forgot All() is a static, a
|
| 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); |