OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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/driver/directory_data_type_controller.h" | 5 #include "components/sync/driver/directory_data_type_controller.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
11 #include "base/threading/thread_task_runner_handle.h" | 11 #include "base/threading/thread_task_runner_handle.h" |
| 12 #include "components/sync/base/data_type_histogram.h" |
12 #include "components/sync/driver/sync_service.h" | 13 #include "components/sync/driver/sync_service.h" |
13 #include "components/sync/engine/model_type_configurer.h" | 14 #include "components/sync/engine/model_type_configurer.h" |
14 #include "components/sync/syncable/syncable_read_transaction.h" | 15 #include "components/sync/syncable/syncable_read_transaction.h" |
15 #include "components/sync/syncable/user_share.h" | 16 #include "components/sync/syncable/user_share.h" |
16 | 17 |
17 namespace syncer { | 18 namespace syncer { |
18 | 19 |
19 DirectoryDataTypeController::DirectoryDataTypeController( | 20 DirectoryDataTypeController::DirectoryDataTypeController( |
20 ModelType type, | 21 ModelType type, |
21 const base::Closure& dump_stack, | 22 const base::Closure& dump_stack, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 ->directory->CollectMetaHandleCounts(&num_entries_by_type, | 77 ->directory->CollectMetaHandleCounts(&num_entries_by_type, |
77 &num_to_delete_entries_by_type); | 78 &num_to_delete_entries_by_type); |
78 syncer::StatusCounters counters; | 79 syncer::StatusCounters counters; |
79 counters.num_entries_and_tombstones = num_entries_by_type[type()]; | 80 counters.num_entries_and_tombstones = num_entries_by_type[type()]; |
80 counters.num_entries = | 81 counters.num_entries = |
81 num_entries_by_type[type()] - num_to_delete_entries_by_type[type()]; | 82 num_entries_by_type[type()] - num_to_delete_entries_by_type[type()]; |
82 | 83 |
83 callback.Run(type(), counters); | 84 callback.Run(type(), counters); |
84 } | 85 } |
85 | 86 |
| 87 void DirectoryDataTypeController::RecordMemoryUsageHistogram() { |
| 88 syncer::syncable::Directory* directory = |
| 89 sync_client_->GetSyncService()->GetUserShare()->directory.get(); |
| 90 size_t memory_usage = directory->EstimateMemoryUsageByType(type()); |
| 91 SyncRecordMemoryKbHistogram(kModelTypeMemoryHistogramPrefix, type(), |
| 92 memory_usage); |
| 93 } |
| 94 |
86 // static | 95 // static |
87 std::unique_ptr<base::ListValue> | 96 std::unique_ptr<base::ListValue> |
88 DirectoryDataTypeController::GetAllNodesForTypeFromDirectory( | 97 DirectoryDataTypeController::GetAllNodesForTypeFromDirectory( |
89 ModelType type, | 98 ModelType type, |
90 syncable::Directory* directory) { | 99 syncable::Directory* directory) { |
91 DCHECK(directory); | 100 DCHECK(directory); |
92 syncable::ReadTransaction trans(FROM_HERE, directory); | 101 syncable::ReadTransaction trans(FROM_HERE, directory); |
93 return directory->GetNodeDetailsForType(&trans, type); | 102 return directory->GetNodeDetailsForType(&trans, type); |
94 } | 103 } |
95 | 104 |
96 } // namespace syncer | 105 } // namespace syncer |
OLD | NEW |