OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/syncable/directory.h" | 5 #include "components/sync/syncable/directory.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 ModelType model_type) { | 69 ModelType model_type) { |
70 const sync_pb::DataTypeProgressMarker& progress_marker = | 70 const sync_pb::DataTypeProgressMarker& progress_marker = |
71 download_progress[model_type]; | 71 download_progress[model_type]; |
72 return progress_marker.token().empty(); | 72 return progress_marker.token().empty(); |
73 } | 73 } |
74 | 74 |
75 Directory::SaveChangesSnapshot::SaveChangesSnapshot() | 75 Directory::SaveChangesSnapshot::SaveChangesSnapshot() |
76 : kernel_info_status(KERNEL_SHARE_INFO_INVALID) {} | 76 : kernel_info_status(KERNEL_SHARE_INFO_INVALID) {} |
77 | 77 |
78 Directory::SaveChangesSnapshot::~SaveChangesSnapshot() { | 78 Directory::SaveChangesSnapshot::~SaveChangesSnapshot() { |
79 STLDeleteElements(&dirty_metas); | 79 base::STLDeleteElements(&dirty_metas); |
80 STLDeleteElements(&delete_journals); | 80 base::STLDeleteElements(&delete_journals); |
81 } | 81 } |
82 | 82 |
83 bool Directory::SaveChangesSnapshot::HasUnsavedMetahandleChanges() const { | 83 bool Directory::SaveChangesSnapshot::HasUnsavedMetahandleChanges() const { |
84 return !dirty_metas.empty() || !metahandles_to_purge.empty() || | 84 return !dirty_metas.empty() || !metahandles_to_purge.empty() || |
85 !delete_journals.empty() || !delete_journals_to_purge.empty(); | 85 !delete_journals.empty() || !delete_journals_to_purge.empty(); |
86 } | 86 } |
87 | 87 |
88 Directory::Kernel::Kernel( | 88 Directory::Kernel::Kernel( |
89 const std::string& name, | 89 const std::string& name, |
90 const KernelLoadInfo& info, | 90 const KernelLoadInfo& info, |
91 DirectoryChangeDelegate* delegate, | 91 DirectoryChangeDelegate* delegate, |
92 const WeakHandle<TransactionObserver>& transaction_observer) | 92 const WeakHandle<TransactionObserver>& transaction_observer) |
93 : next_write_transaction_id(0), | 93 : next_write_transaction_id(0), |
94 name(name), | 94 name(name), |
95 info_status(Directory::KERNEL_SHARE_INFO_VALID), | 95 info_status(Directory::KERNEL_SHARE_INFO_VALID), |
96 persisted_info(info.kernel_info), | 96 persisted_info(info.kernel_info), |
97 cache_guid(info.cache_guid), | 97 cache_guid(info.cache_guid), |
98 next_metahandle(info.max_metahandle + 1), | 98 next_metahandle(info.max_metahandle + 1), |
99 delegate(delegate), | 99 delegate(delegate), |
100 transaction_observer(transaction_observer) { | 100 transaction_observer(transaction_observer) { |
101 DCHECK(delegate); | 101 DCHECK(delegate); |
102 DCHECK(transaction_observer.IsInitialized()); | 102 DCHECK(transaction_observer.IsInitialized()); |
103 } | 103 } |
104 | 104 |
105 Directory::Kernel::~Kernel() { | 105 Directory::Kernel::~Kernel() { |
106 STLDeleteContainerPairSecondPointers(metahandles_map.begin(), | 106 base::STLDeleteContainerPairSecondPointers(metahandles_map.begin(), |
107 metahandles_map.end()); | 107 metahandles_map.end()); |
108 } | 108 } |
109 | 109 |
110 Directory::Directory( | 110 Directory::Directory( |
111 DirectoryBackingStore* store, | 111 DirectoryBackingStore* store, |
112 const WeakHandle<UnrecoverableErrorHandler>& unrecoverable_error_handler, | 112 const WeakHandle<UnrecoverableErrorHandler>& unrecoverable_error_handler, |
113 const base::Closure& report_unrecoverable_error_function, | 113 const base::Closure& report_unrecoverable_error_function, |
114 NigoriHandler* nigori_handler, | 114 NigoriHandler* nigori_handler, |
115 Cryptographer* cryptographer) | 115 Cryptographer* cryptographer) |
116 : kernel_(NULL), | 116 : kernel_(NULL), |
117 store_(store), | 117 store_(store), |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 const string& name, | 180 const string& name, |
181 DirectoryChangeDelegate* delegate, | 181 DirectoryChangeDelegate* delegate, |
182 const WeakHandle<TransactionObserver>& transaction_observer) { | 182 const WeakHandle<TransactionObserver>& transaction_observer) { |
183 KernelLoadInfo info; | 183 KernelLoadInfo info; |
184 // Temporary indices before kernel_ initialized in case Load fails. We 0(1) | 184 // Temporary indices before kernel_ initialized in case Load fails. We 0(1) |
185 // swap these later. | 185 // swap these later. |
186 Directory::MetahandlesMap tmp_handles_map; | 186 Directory::MetahandlesMap tmp_handles_map; |
187 | 187 |
188 // Avoids mem leaks on failure. Harmlessly deletes the empty hash map after | 188 // Avoids mem leaks on failure. Harmlessly deletes the empty hash map after |
189 // the swap in the success case. | 189 // the swap in the success case. |
190 STLValueDeleter<MetahandlesMap> deleter(&tmp_handles_map); | 190 base::STLValueDeleter<MetahandlesMap> deleter(&tmp_handles_map); |
191 | 191 |
192 JournalIndex delete_journals; | 192 JournalIndex delete_journals; |
193 MetahandleSet metahandles_to_purge; | 193 MetahandleSet metahandles_to_purge; |
194 | 194 |
195 DirOpenResult result = store_->Load(&tmp_handles_map, &delete_journals, | 195 DirOpenResult result = store_->Load(&tmp_handles_map, &delete_journals, |
196 &metahandles_to_purge, &info); | 196 &metahandles_to_purge, &info); |
197 if (OPENED != result) | 197 if (OPENED != result) |
198 return result; | 198 return result; |
199 | 199 |
200 DCHECK(!kernel_); | 200 DCHECK(!kernel_); |
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
732 ModelTypeSet types_to_unapply) { | 732 ModelTypeSet types_to_unapply) { |
733 disabled_types.RemoveAll(ProxyTypes()); | 733 disabled_types.RemoveAll(ProxyTypes()); |
734 | 734 |
735 if (disabled_types.Empty()) | 735 if (disabled_types.Empty()) |
736 return true; | 736 return true; |
737 | 737 |
738 { | 738 { |
739 WriteTransaction trans(FROM_HERE, PURGE_ENTRIES, this); | 739 WriteTransaction trans(FROM_HERE, PURGE_ENTRIES, this); |
740 | 740 |
741 EntryKernelSet entries_to_journal; | 741 EntryKernelSet entries_to_journal; |
742 STLElementDeleter<EntryKernelSet> journal_deleter(&entries_to_journal); | 742 base::STLElementDeleter<EntryKernelSet> journal_deleter( |
| 743 &entries_to_journal); |
743 | 744 |
744 { | 745 { |
745 ScopedKernelLock lock(this); | 746 ScopedKernelLock lock(this); |
746 | 747 |
747 bool found_progress = false; | 748 bool found_progress = false; |
748 for (ModelTypeSet::Iterator iter = disabled_types.First(); iter.Good(); | 749 for (ModelTypeSet::Iterator iter = disabled_types.First(); iter.Good(); |
749 iter.Inc()) { | 750 iter.Inc()) { |
750 if (!kernel_->persisted_info.HasEmptyDownloadProgress(iter.Get())) | 751 if (!kernel_->persisted_info.HasEmptyDownloadProgress(iter.Get())) |
751 found_progress = true; | 752 found_progress = true; |
752 } | 753 } |
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1542 Directory::Kernel* Directory::kernel() { | 1543 Directory::Kernel* Directory::kernel() { |
1543 return kernel_; | 1544 return kernel_; |
1544 } | 1545 } |
1545 | 1546 |
1546 const Directory::Kernel* Directory::kernel() const { | 1547 const Directory::Kernel* Directory::kernel() const { |
1547 return kernel_; | 1548 return kernel_; |
1548 } | 1549 } |
1549 | 1550 |
1550 } // namespace syncable | 1551 } // namespace syncable |
1551 } // namespace syncer | 1552 } // namespace syncer |
OLD | NEW |