1*6777b538SAndroid Build Coastguard Worker // Copyright 2017 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #ifndef COMPONENTS_METRICS_LOG_DECODER_H_ 6*6777b538SAndroid Build Coastguard Worker #define COMPONENTS_METRICS_LOG_DECODER_H_ 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker #include <string> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace google { 11*6777b538SAndroid Build Coastguard Worker namespace protobuf { 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Worker class MessageLite; 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker } // namespace protobuf 16*6777b538SAndroid Build Coastguard Worker } // namespace google 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Worker namespace metrics { 19*6777b538SAndroid Build Coastguard Worker 20*6777b538SAndroid Build Coastguard Worker // Other modules can call this function instead of directly calling gzip. This 21*6777b538SAndroid Build Coastguard Worker // prevents other modules from having to depend on zlib, or being aware of 22*6777b538SAndroid Build Coastguard Worker // metrics' use of gzip compression, which is a metrics implementation detail. 23*6777b538SAndroid Build Coastguard Worker // Returns true on success, false on failure. 24*6777b538SAndroid Build Coastguard Worker bool DecodeLogData(const std::string& compressed_log_data, 25*6777b538SAndroid Build Coastguard Worker std::string* log_data); 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Worker // Decodes |compressed_log_data| and populates |proto| with the decompressed log 28*6777b538SAndroid Build Coastguard Worker // data. Returns true on success and false on failure. 29*6777b538SAndroid Build Coastguard Worker bool DecodeLogDataToProto(const std::string& compressed_log_data, 30*6777b538SAndroid Build Coastguard Worker google::protobuf::MessageLite* proto); 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker } // namespace metrics 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker #endif // COMPONENTS_METRICS_LOG_DECODER_H_ 35