| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #ifndef BASE_METRICS_HISTOGRAM_PERSISTENCE_H_ | 5 #ifndef BASE_METRICS_HISTOGRAM_PERSISTENCE_H_ |
| 6 #define BASE_METRICS_HISTOGRAM_PERSISTENCE_H_ | 6 #define BASE_METRICS_HISTOGRAM_PERSISTENCE_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 // given |id|. Only one |user| of this data is allowed at a time. This does | 49 // given |id|. Only one |user| of this data is allowed at a time. This does |
| 50 // an automatic Acquire() on the records. The user must call Release() on | 50 // an automatic Acquire() on the records. The user must call Release() on |
| 51 // the returned object when it is finished with it. Ownership of the records | 51 // the returned object when it is finished with it. Ownership of the records |
| 52 // object stays with this manager. | 52 // object stays with this manager. |
| 53 PersistentSampleMapRecords* UseSampleMapRecords(uint64_t id, | 53 PersistentSampleMapRecords* UseSampleMapRecords(uint64_t id, |
| 54 const void* user); | 54 const void* user); |
| 55 | 55 |
| 56 // Convenience method that gets the object for a given reference so callers | 56 // Convenience method that gets the object for a given reference so callers |
| 57 // don't have to also keep their own pointer to the appropriate allocator. | 57 // don't have to also keep their own pointer to the appropriate allocator. |
| 58 template <typename T> | 58 template <typename T> |
| 59 T* GetAsObject(PersistentMemoryAllocator::Reference ref, uint32_t type_id) { | 59 T* GetAsObject(PersistentMemoryAllocator::Reference ref) { |
| 60 return allocator_->GetAsObject<T>(ref, type_id); | 60 return allocator_->GetAsObject<T>(ref); |
| 61 } | 61 } |
| 62 | 62 |
| 63 private: | 63 private: |
| 64 friend class PersistentSampleMapRecords; | 64 friend class PersistentSampleMapRecords; |
| 65 | 65 |
| 66 // Gets the object holding records for a given sample-map id when |lock_| | 66 // Gets the object holding records for a given sample-map id when |lock_| |
| 67 // has already been acquired. | 67 // has already been acquired. |
| 68 PersistentSampleMapRecords* GetSampleMapRecordsWhileLocked(uint64_t id); | 68 PersistentSampleMapRecords* GetSampleMapRecordsWhileLocked(uint64_t id); |
| 69 | 69 |
| 70 // Loads sample-map records looking for those belonging to the specified | 70 // Loads sample-map records looking for those belonging to the specified |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 // a reference to it. | 124 // a reference to it. |
| 125 PersistentMemoryAllocator::Reference CreateNew(HistogramBase::Sample value); | 125 PersistentMemoryAllocator::Reference CreateNew(HistogramBase::Sample value); |
| 126 | 126 |
| 127 // Convenience method that gets the object for a given reference so callers | 127 // Convenience method that gets the object for a given reference so callers |
| 128 // don't have to also keep their own pointer to the appropriate allocator. | 128 // don't have to also keep their own pointer to the appropriate allocator. |
| 129 // This is expected to be used with the SampleRecord structure defined inside | 129 // This is expected to be used with the SampleRecord structure defined inside |
| 130 // the persistent_sample_map.cc file but since that isn't exported (for | 130 // the persistent_sample_map.cc file but since that isn't exported (for |
| 131 // cleanliness of the interface), a template is defined that will be | 131 // cleanliness of the interface), a template is defined that will be |
| 132 // resolved when used inside that file. | 132 // resolved when used inside that file. |
| 133 template <typename T> | 133 template <typename T> |
| 134 T* GetAsObject(PersistentMemoryAllocator::Reference ref, uint32_t type_id) { | 134 T* GetAsObject(PersistentMemoryAllocator::Reference ref) { |
| 135 return data_manager_->GetAsObject<T>(ref, type_id); | 135 return data_manager_->GetAsObject<T>(ref); |
| 136 } | 136 } |
| 137 | 137 |
| 138 private: | 138 private: |
| 139 friend PersistentSparseHistogramDataManager; | 139 friend PersistentSparseHistogramDataManager; |
| 140 | 140 |
| 141 // Weak-pointer to the parent data-manager object. | 141 // Weak-pointer to the parent data-manager object. |
| 142 PersistentSparseHistogramDataManager* data_manager_; | 142 PersistentSparseHistogramDataManager* data_manager_; |
| 143 | 143 |
| 144 // ID of PersistentSampleMap to which these records apply. | 144 // ID of PersistentSampleMap to which these records apply. |
| 145 const uint64_t sample_map_id_; | 145 const uint64_t sample_map_id_; |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 | 504 |
| 505 // The location to which the data should be persisted. | 505 // The location to which the data should be persisted. |
| 506 FilePath persistent_location_; | 506 FilePath persistent_location_; |
| 507 | 507 |
| 508 DISALLOW_COPY_AND_ASSIGN(GlobalHistogramAllocator); | 508 DISALLOW_COPY_AND_ASSIGN(GlobalHistogramAllocator); |
| 509 }; | 509 }; |
| 510 | 510 |
| 511 } // namespace base | 511 } // namespace base |
| 512 | 512 |
| 513 #endif // BASE_METRICS_HISTOGRAM_PERSISTENCE_H_ | 513 #endif // BASE_METRICS_HISTOGRAM_PERSISTENCE_H_ |
| OLD | NEW |