OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 CHROME_COMMON_METRICS_METRICS_LOG_MANAGER_H_ | 5 #ifndef COMPONENTS_METRICS_METRICS_LOG_MANAGER_H_ |
6 #define CHROME_COMMON_METRICS_METRICS_LOG_MANAGER_H_ | 6 #define COMPONENTS_METRICS_METRICS_LOG_MANAGER_H_ |
7 | |
8 | 7 |
9 #include <string> | 8 #include <string> |
10 #include <vector> | 9 #include <vector> |
11 | 10 |
12 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
13 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
14 #include "chrome/common/metrics/metrics_log_base.h" | 13 #include "components/metrics/metrics_log_base.h" |
| 14 |
| 15 namespace metrics { |
15 | 16 |
16 // Manages all the log objects used by a MetricsService implementation. Keeps | 17 // Manages all the log objects used by a MetricsService implementation. Keeps |
17 // track of both an in progress log and a log that is staged for uploading as | 18 // track of both an in progress log and a log that is staged for uploading as |
18 // text, as well as saving logs to, and loading logs from, persistent storage. | 19 // text, as well as saving logs to, and loading logs from, persistent storage. |
19 class MetricsLogManager { | 20 class MetricsLogManager { |
20 public: | 21 public: |
21 typedef MetricsLogBase::LogType LogType; | 22 typedef MetricsLogBase::LogType LogType; |
22 | 23 |
23 MetricsLogManager(); | 24 MetricsLogManager(); |
24 ~MetricsLogManager(); | 25 ~MetricsLogManager(); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 | 159 |
159 // Loads any unsent logs from persistent storage using the current log | 160 // Loads any unsent logs from persistent storage using the current log |
160 // serializer. Can only be called after set_log_serializer. | 161 // serializer. Can only be called after set_log_serializer. |
161 void LoadPersistedUnsentLogs(); | 162 void LoadPersistedUnsentLogs(); |
162 | 163 |
163 private: | 164 private: |
164 // Saves |log| as the given type (or discards it in accordance with | 165 // Saves |log| as the given type (or discards it in accordance with |
165 // |max_ongoing_log_store_size_|). | 166 // |max_ongoing_log_store_size_|). |
166 // NOTE: This clears the contents of |log| (to avoid an expensive copy), | 167 // NOTE: This clears the contents of |log| (to avoid an expensive copy), |
167 // so the log should be discarded after this call. | 168 // so the log should be discarded after this call. |
168 void StoreLog(SerializedLog* log, | 169 void StoreLog(SerializedLog* log, LogType log_type, StoreType store_type); |
169 LogType log_type, | |
170 StoreType store_type); | |
171 | 170 |
172 // Compresses |current_log_| into |compressed_log|. | 171 // Compresses |current_log_| into |compressed_log|. |
173 void CompressCurrentLog(SerializedLog* compressed_log); | 172 void CompressCurrentLog(SerializedLog* compressed_log); |
174 | 173 |
175 // Tracks whether unsent logs (if any) have been loaded from the serializer. | 174 // Tracks whether unsent logs (if any) have been loaded from the serializer. |
176 bool unsent_logs_loaded_; | 175 bool unsent_logs_loaded_; |
177 | 176 |
178 // The log that we are still appending to. | 177 // The log that we are still appending to. |
179 scoped_ptr<MetricsLogBase> current_log_; | 178 scoped_ptr<MetricsLogBase> current_log_; |
180 | 179 |
(...skipping 21 matching lines...) Expand all Loading... |
202 // re-staged, the index will be -1; | 201 // re-staged, the index will be -1; |
203 // This is necessary because during an upload there are two logs (staged | 202 // This is necessary because during an upload there are two logs (staged |
204 // and current) and a client might store them in either order, so it's | 203 // and current) and a client might store them in either order, so it's |
205 // not necessarily the case that the provisional store is the last store. | 204 // not necessarily the case that the provisional store is the last store. |
206 int last_provisional_store_index_; | 205 int last_provisional_store_index_; |
207 LogType last_provisional_store_type_; | 206 LogType last_provisional_store_type_; |
208 | 207 |
209 DISALLOW_COPY_AND_ASSIGN(MetricsLogManager); | 208 DISALLOW_COPY_AND_ASSIGN(MetricsLogManager); |
210 }; | 209 }; |
211 | 210 |
212 #endif // CHROME_COMMON_METRICS_METRICS_LOG_MANAGER_H_ | 211 } // namespace metrics |
| 212 |
| 213 #endif // COMPONENTS_METRICS_METRICS_LOG_MANAGER_H_ |
OLD | NEW |