| 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 #ifndef COMPONENTS_METRICS_PERSISTED_LOGS_H_ | 5 #ifndef COMPONENTS_METRICS_PERSISTED_LOGS_H_ |
| 6 #define COMPONENTS_METRICS_PERSISTED_LOGS_H_ | 6 #define COMPONENTS_METRICS_PERSISTED_LOGS_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 // is longer than the lifetime of PersistedLogs. | 48 // is longer than the lifetime of PersistedLogs. |
| 49 // | 49 // |
| 50 // When saving logs to disk, stores either the first |min_log_count| logs, or | 50 // When saving logs to disk, stores either the first |min_log_count| logs, or |
| 51 // at least |min_log_bytes| bytes of logs, whichever is greater. | 51 // at least |min_log_bytes| bytes of logs, whichever is greater. |
| 52 // | 52 // |
| 53 // If the optional |max_log_size| parameter is non-zero, all logs larger than | 53 // If the optional |max_log_size| parameter is non-zero, all logs larger than |
| 54 // that limit will be skipped when writing to disk. | 54 // that limit will be skipped when writing to disk. |
| 55 PersistedLogs(std::unique_ptr<PersistedLogsMetrics> metrics, | 55 PersistedLogs(std::unique_ptr<PersistedLogsMetrics> metrics, |
| 56 PrefService* local_state, | 56 PrefService* local_state, |
| 57 const char* pref_name, | 57 const char* pref_name, |
| 58 const char* outdated_pref_name, | |
| 59 size_t min_log_count, | 58 size_t min_log_count, |
| 60 size_t min_log_bytes, | 59 size_t min_log_bytes, |
| 61 size_t max_log_size); | 60 size_t max_log_size); |
| 62 ~PersistedLogs(); | 61 ~PersistedLogs(); |
| 63 | 62 |
| 64 // Write list to storage. | 63 // Write list to storage. |
| 65 void SerializeLogs() const; | 64 void SerializeLogs() const; |
| 66 | 65 |
| 67 // Reads the list from the preference. | 66 // Reads the list from the preference. |
| 68 LogReadStatus DeserializeLogs(); | 67 LogReadStatus DeserializeLogs(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 // True if there are no stored logs. | 103 // True if there are no stored logs. |
| 105 bool empty() const { return list_.empty(); } | 104 bool empty() const { return list_.empty(); } |
| 106 | 105 |
| 107 private: | 106 private: |
| 108 // Writes the list to the ListValue. | 107 // Writes the list to the ListValue. |
| 109 void WriteLogsToPrefList(base::ListValue* list) const; | 108 void WriteLogsToPrefList(base::ListValue* list) const; |
| 110 | 109 |
| 111 // Reads the list from the ListValue. | 110 // Reads the list from the ListValue. |
| 112 LogReadStatus ReadLogsFromPrefList(const base::ListValue& list); | 111 LogReadStatus ReadLogsFromPrefList(const base::ListValue& list); |
| 113 | 112 |
| 114 // Reads the list from the ListValue in the old Log-hash pair format. | |
| 115 LogReadStatus ReadLogsFromOldFormatPrefList(const base::ListValue& list); | |
| 116 | |
| 117 // An object for recording UMA metrics. | 113 // An object for recording UMA metrics. |
| 118 std::unique_ptr<PersistedLogsMetrics> metrics_; | 114 std::unique_ptr<PersistedLogsMetrics> metrics_; |
| 119 | 115 |
| 120 // A weak pointer to the PrefService object to read and write the preference | 116 // A weak pointer to the PrefService object to read and write the preference |
| 121 // from. Calling code should ensure this object continues to exist for the | 117 // from. Calling code should ensure this object continues to exist for the |
| 122 // lifetime of the PersistedLogs object. | 118 // lifetime of the PersistedLogs object. |
| 123 PrefService* local_state_; | 119 PrefService* local_state_; |
| 124 | 120 |
| 125 // The name of the preference to serialize logs to/from. | 121 // The name of the preference to serialize logs to/from. |
| 126 const char* pref_name_; | 122 const char* pref_name_; |
| 127 | 123 |
| 128 // The name of the preference to serialize logs to/from which may contain log | |
| 129 // in the old formatting. | |
| 130 const char* outdated_pref_name_; | |
| 131 | |
| 132 // We will keep at least this |min_log_count_| logs or |min_log_bytes_| bytes | 124 // We will keep at least this |min_log_count_| logs or |min_log_bytes_| bytes |
| 133 // of logs, whichever is greater, when writing to disk. These apply after | 125 // of logs, whichever is greater, when writing to disk. These apply after |
| 134 // skipping logs greater than |max_log_size_|. | 126 // skipping logs greater than |max_log_size_|. |
| 135 const size_t min_log_count_; | 127 const size_t min_log_count_; |
| 136 const size_t min_log_bytes_; | 128 const size_t min_log_bytes_; |
| 137 | 129 |
| 138 // Logs greater than this size will not be written to disk. | 130 // Logs greater than this size will not be written to disk. |
| 139 const size_t max_log_size_; | 131 const size_t max_log_size_; |
| 140 | 132 |
| 141 struct LogInfo { | 133 struct LogInfo { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 162 // The index and type of the log staged for upload. If nothing has been | 154 // The index and type of the log staged for upload. If nothing has been |
| 163 // staged, the index will be -1. | 155 // staged, the index will be -1. |
| 164 int staged_log_index_; | 156 int staged_log_index_; |
| 165 | 157 |
| 166 DISALLOW_COPY_AND_ASSIGN(PersistedLogs); | 158 DISALLOW_COPY_AND_ASSIGN(PersistedLogs); |
| 167 }; | 159 }; |
| 168 | 160 |
| 169 } // namespace metrics | 161 } // namespace metrics |
| 170 | 162 |
| 171 #endif // COMPONENTS_METRICS_PERSISTED_LOGS_H_ | 163 #endif // COMPONENTS_METRICS_PERSISTED_LOGS_H_ |
| OLD | NEW |