| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "sync/internal_api/sync_manager_impl.h" | 5 #include "sync/internal_api/sync_manager_impl.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 connection_manager_->set_client_id(directory()->cache_guid()); | 389 connection_manager_->set_client_id(directory()->cache_guid()); |
| 390 connection_manager_->AddListener(this); | 390 connection_manager_->AddListener(this); |
| 391 | 391 |
| 392 std::string sync_id = directory()->cache_guid(); | 392 std::string sync_id = directory()->cache_guid(); |
| 393 | 393 |
| 394 DVLOG(1) << "Setting sync client ID: " << sync_id; | 394 DVLOG(1) << "Setting sync client ID: " << sync_id; |
| 395 allstatus_.SetSyncId(sync_id); | 395 allstatus_.SetSyncId(sync_id); |
| 396 DVLOG(1) << "Setting invalidator client ID: " << invalidator_client_id; | 396 DVLOG(1) << "Setting invalidator client ID: " << invalidator_client_id; |
| 397 allstatus_.SetInvalidatorClientId(invalidator_client_id); | 397 allstatus_.SetInvalidatorClientId(invalidator_client_id); |
| 398 | 398 |
| 399 model_type_registry_.reset(new ModelTypeRegistry(workers, directory())); | 399 model_type_registry_.reset(new ModelTypeRegistry(workers, directory(), this)); |
| 400 | 400 |
| 401 // Bind the SyncContext WeakPtr to this thread. This helps us crash earlier | 401 // Bind the SyncContext WeakPtr to this thread. This helps us crash earlier |
| 402 // if the pointer is misused in debug mode. | 402 // if the pointer is misused in debug mode. |
| 403 base::WeakPtr<SyncContext> weak_core = model_type_registry_->AsWeakPtr(); | 403 base::WeakPtr<SyncContext> weak_core = model_type_registry_->AsWeakPtr(); |
| 404 weak_core.get(); | 404 weak_core.get(); |
| 405 | 405 |
| 406 sync_context_proxy_.reset( | 406 sync_context_proxy_.reset( |
| 407 new SyncContextProxyImpl(base::ThreadTaskRunnerHandle::Get(), weak_core)); | 407 new SyncContextProxyImpl(base::ThreadTaskRunnerHandle::Get(), weak_core)); |
| 408 | 408 |
| 409 // Build a SyncSessionContext and store the worker in it. | 409 // Build a SyncSessionContext and store the worker in it. |
| (...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 893 | 893 |
| 894 // TODO(lipalani) : Calculate the nudge delay based on all types. | 894 // TODO(lipalani) : Calculate the nudge delay based on all types. |
| 895 base::TimeDelta nudge_delay = NudgeStrategy::GetNudgeDelayTimeDelta( | 895 base::TimeDelta nudge_delay = NudgeStrategy::GetNudgeDelayTimeDelta( |
| 896 types.First().Get(), | 896 types.First().Get(), |
| 897 this); | 897 this); |
| 898 scheduler_->ScheduleLocalNudge(nudge_delay, | 898 scheduler_->ScheduleLocalNudge(nudge_delay, |
| 899 types, | 899 types, |
| 900 nudge_location); | 900 nudge_location); |
| 901 } | 901 } |
| 902 | 902 |
| 903 void SyncManagerImpl::NudgeForInitialDownload(syncer::ModelType type) { |
| 904 // TODO(rlarocque): Initial downloads should have a separate nudge type. |
| 905 DCHECK(thread_checker_.CalledOnValidThread()); |
| 906 RefreshTypes(ModelTypeSet(type)); |
| 907 } |
| 908 |
| 909 void SyncManagerImpl::NudgeForCommit(syncer::ModelType type) { |
| 910 DCHECK(thread_checker_.CalledOnValidThread()); |
| 911 RequestNudgeForDataTypes(FROM_HERE, ModelTypeSet(type)); |
| 912 } |
| 913 |
| 914 void SyncManagerImpl::NudgeForRefresh(syncer::ModelType type) { |
| 915 DCHECK(thread_checker_.CalledOnValidThread()); |
| 916 RefreshTypes(ModelTypeSet(type)); |
| 917 } |
| 918 |
| 903 void SyncManagerImpl::OnSyncCycleEvent(const SyncCycleEvent& event) { | 919 void SyncManagerImpl::OnSyncCycleEvent(const SyncCycleEvent& event) { |
| 904 DCHECK(thread_checker_.CalledOnValidThread()); | 920 DCHECK(thread_checker_.CalledOnValidThread()); |
| 905 // Only send an event if this is due to a cycle ending and this cycle | 921 // Only send an event if this is due to a cycle ending and this cycle |
| 906 // concludes a canonical "sync" process; that is, based on what is known | 922 // concludes a canonical "sync" process; that is, based on what is known |
| 907 // locally we are "all happy" and up-to-date. There may be new changes on | 923 // locally we are "all happy" and up-to-date. There may be new changes on |
| 908 // the server, but we'll get them on a subsequent sync. | 924 // the server, but we'll get them on a subsequent sync. |
| 909 // | 925 // |
| 910 // Notifications are sent at the end of every sync cycle, regardless of | 926 // Notifications are sent at the end of every sync cycle, regardless of |
| 911 // whether we should sync again. | 927 // whether we should sync again. |
| 912 if (event.what_happened == SyncCycleEvent::SYNC_CYCLE_ENDED) { | 928 if (event.what_happened == SyncCycleEvent::SYNC_CYCLE_ENDED) { |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1136 int SyncManagerImpl::GetDefaultNudgeDelay() { | 1152 int SyncManagerImpl::GetDefaultNudgeDelay() { |
| 1137 return kDefaultNudgeDelayMilliseconds; | 1153 return kDefaultNudgeDelayMilliseconds; |
| 1138 } | 1154 } |
| 1139 | 1155 |
| 1140 // static. | 1156 // static. |
| 1141 int SyncManagerImpl::GetPreferencesNudgeDelay() { | 1157 int SyncManagerImpl::GetPreferencesNudgeDelay() { |
| 1142 return kPreferencesNudgeDelayMilliseconds; | 1158 return kPreferencesNudgeDelayMilliseconds; |
| 1143 } | 1159 } |
| 1144 | 1160 |
| 1145 } // namespace syncer | 1161 } // namespace syncer |
| OLD | NEW |