| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/sync/engine_impl/directory_update_handler.h" | 5 #include "components/sync/engine_impl/directory_update_handler.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/memory/ptr_util.h" |
| 11 #include "components/sync/base/data_type_histogram.h" | 12 #include "components/sync/base/data_type_histogram.h" |
| 12 #include "components/sync/engine_impl/conflict_resolver.h" | 13 #include "components/sync/engine_impl/conflict_resolver.h" |
| 13 #include "components/sync/engine_impl/cycle/directory_type_debug_info_emitter.h" | 14 #include "components/sync/engine_impl/cycle/directory_type_debug_info_emitter.h" |
| 14 #include "components/sync/engine_impl/cycle/status_controller.h" | 15 #include "components/sync/engine_impl/cycle/status_controller.h" |
| 15 #include "components/sync/engine_impl/update_applicator.h" | 16 #include "components/sync/engine_impl/update_applicator.h" |
| 16 #include "components/sync/syncable/directory.h" | 17 #include "components/sync/syncable/directory.h" |
| 17 #include "components/sync/syncable/model_neutral_mutable_entry.h" | 18 #include "components/sync/syncable/model_neutral_mutable_entry.h" |
| 18 #include "components/sync/syncable/syncable_changes_version.h" | 19 #include "components/sync/syncable/syncable_changes_version.h" |
| 19 #include "components/sync/syncable/syncable_model_neutral_write_transaction.h" | 20 #include "components/sync/syncable/syncable_model_neutral_write_transaction.h" |
| 20 #include "components/sync/syncable/syncable_write_transaction.h" | 21 #include "components/sync/syncable/syncable_write_transaction.h" |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 } | 279 } |
| 279 } | 280 } |
| 280 | 281 |
| 281 void DirectoryUpdateHandler::ExpireEntriesIfNeeded( | 282 void DirectoryUpdateHandler::ExpireEntriesIfNeeded( |
| 282 syncable::ModelNeutralWriteTransaction* trans, | 283 syncable::ModelNeutralWriteTransaction* trans, |
| 283 const sync_pb::DataTypeProgressMarker& progress_marker) { | 284 const sync_pb::DataTypeProgressMarker& progress_marker) { |
| 284 if (!cached_gc_directive_) { | 285 if (!cached_gc_directive_) { |
| 285 sync_pb::DataTypeProgressMarker current_marker; | 286 sync_pb::DataTypeProgressMarker current_marker; |
| 286 GetDownloadProgress(¤t_marker); | 287 GetDownloadProgress(¤t_marker); |
| 287 if (current_marker.has_gc_directive()) { | 288 if (current_marker.has_gc_directive()) { |
| 288 cached_gc_directive_.reset(new sync_pb::GarbageCollectionDirective( | 289 cached_gc_directive_ = |
| 289 current_marker.gc_directive())); | 290 base::MakeUnique<sync_pb::GarbageCollectionDirective>( |
| 291 current_marker.gc_directive()); |
| 290 } | 292 } |
| 291 } | 293 } |
| 292 | 294 |
| 293 if (!progress_marker.has_gc_directive()) | 295 if (!progress_marker.has_gc_directive()) |
| 294 return; | 296 return; |
| 295 | 297 |
| 296 const sync_pb::GarbageCollectionDirective& new_gc_directive = | 298 const sync_pb::GarbageCollectionDirective& new_gc_directive = |
| 297 progress_marker.gc_directive(); | 299 progress_marker.gc_directive(); |
| 298 | 300 |
| 299 if (new_gc_directive.has_version_watermark() && | 301 if (new_gc_directive.has_version_watermark() && |
| 300 (!cached_gc_directive_ || | 302 (!cached_gc_directive_ || |
| 301 cached_gc_directive_->version_watermark() < | 303 cached_gc_directive_->version_watermark() < |
| 302 new_gc_directive.version_watermark())) { | 304 new_gc_directive.version_watermark())) { |
| 303 ExpireEntriesByVersion(dir_, trans, type_, | 305 ExpireEntriesByVersion(dir_, trans, type_, |
| 304 new_gc_directive.version_watermark()); | 306 new_gc_directive.version_watermark()); |
| 305 } | 307 } |
| 306 | 308 |
| 307 cached_gc_directive_.reset( | 309 cached_gc_directive_ = |
| 308 new sync_pb::GarbageCollectionDirective(new_gc_directive)); | 310 base::MakeUnique<sync_pb::GarbageCollectionDirective>(new_gc_directive); |
| 309 } | 311 } |
| 310 | 312 |
| 311 } // namespace syncer | 313 } // namespace syncer |
| OLD | NEW |