Chromium Code Reviews| Index: chrome/common/metrics/metrics_log_manager.h |
| diff --git a/chrome/common/metrics/metrics_log_manager.h b/chrome/common/metrics/metrics_log_manager.h |
| index 3eb04f00d755047be6eff068b3e6685ec612866f..1eb92b118a6a29efb70100f75a197c742a0d6eed 100644 |
| --- a/chrome/common/metrics/metrics_log_manager.h |
| +++ b/chrome/common/metrics/metrics_log_manager.h |
| @@ -10,6 +10,7 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include <string> |
| +#include <utility> |
| #include <vector> |
| class MetricsLogBase; |
| @@ -36,9 +37,14 @@ class MetricsLogManager { |
| // Note that this returns true even if compressing the log text failed. |
| bool has_staged_log() const; |
| - // The compressed text of the staged log. Empty if there is no staged log, |
| - // or if compression of the staged log failed. |
| - const std::string& staged_log_text() { return compressed_staged_log_text_; } |
| + // The text of the staged log, in compressed XML or protobuf format. Empty if |
| + // there is no staged log, or if compression of the staged log failed. |
| + const std::string& staged_log_text_xml() const { |
|
jar (doing other things)
2012/02/23 01:59:18
This sort of accessor helps some (and keeps us awa
|
| + return staged_log_text_.first; |
| + } |
| + const std::string& staged_log_text_proto() const { |
| + return staged_log_text_.second; |
| + } |
| // Discards the staged log. |
| void DiscardStagedLog(); |
| @@ -91,13 +97,15 @@ class MetricsLogManager { |
| // Serializes |logs| to persistent storage, replacing any previously |
| // serialized logs of the same type. |
| - virtual void SerializeLogs(const std::vector<std::string>& logs, |
| - LogType log_type) = 0; |
| + virtual void SerializeLogs( |
| + const std::vector<std::pair<std::string, std::string> >& logs, |
| + LogType log_type) = 0; |
| // Populates |logs| with logs of type |log_type| deserialized from |
| // persistent storage. |
| - virtual void DeserializeLogs(LogType log_type, |
| - std::vector<std::string>* logs) = 0; |
| + virtual void DeserializeLogs( |
| + LogType log_type, |
| + std::vector<std::pair<std::string, std::string> >* logs) = 0; |
| }; |
| // Sets the serializer to use for persisting and loading logs; takes ownership |
| @@ -115,8 +123,8 @@ class MetricsLogManager { |
| void LoadPersistedUnsentLogs(); |
| private: |
| - // Compresses staged_log_ and stores the result in |
| - // compressed_staged_log_text_. |
| + // Compresses |staged_log_| and stores the result in |
| + // |compressed_staged_xml_log_text_|. |
| void CompressStagedLog(); |
| // Compresses the text in |input| using bzip2, store the result in |output|. |
| @@ -130,21 +138,25 @@ class MetricsLogManager { |
| // The log that we are currently transmiting, or about to try to transmit. |
| // Note that when using StageNextStoredLogForUpload, this can be NULL while |
| - // compressed_staged_log_text_ is non-NULL. |
| + // |compressed_staged_xml_log_text_| is non-NULL. |
| scoped_ptr<MetricsLogBase> staged_log_; |
| // Helper class to handle serialization/deserialization of logs for persistent |
| // storage. May be NULL. |
| scoped_ptr<LogSerializer> log_serializer_; |
| - // The compressed text of the staged log, ready for upload to the server. |
| - std::string compressed_staged_log_text_; |
| + // The text representations of the staged log, ready for upload to the server. |
| + // The first item in the pair is the compressed XML representation; the second |
| + // is the protobuf representation. |
| + std::pair<std::string, std::string> staged_log_text_; |
| // Logs from a previous session that have not yet been sent. |
| + // The first item in each pair is the XML representation; the second item is |
| + // the protobuf representation. |
| // Note that the vector has the oldest logs listed first (early in the |
| // vector), and we'll discard old logs if we have gathered too many logs. |
| - std::vector<std::string> unsent_initial_logs_; |
| - std::vector<std::string> unsent_ongoing_logs_; |
| + std::vector<std::pair<std::string, std::string> > unsent_initial_logs_; |
|
jar (doing other things)
2012/02/23 01:59:18
IMO, you should use a tiny class or struct, and no
Ilya Sherman
2012/02/24 02:10:06
Done.
|
| + std::vector<std::pair<std::string, std::string> > unsent_ongoing_logs_; |
| size_t max_ongoing_log_store_size_; |