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 #include "components/metrics/log_decoder.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include "third_party/protobuf/src/google/protobuf/message_lite.h" 8*6777b538SAndroid Build Coastguard Worker #include "third_party/zlib/google/compression_utils.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace metrics { 11*6777b538SAndroid Build Coastguard Worker DecodeLogData(const std::string & compressed_log_data,std::string * log_data)12*6777b538SAndroid Build Coastguard Workerbool DecodeLogData(const std::string& compressed_log_data, 13*6777b538SAndroid Build Coastguard Worker std::string* log_data) { 14*6777b538SAndroid Build Coastguard Worker return compression::GzipUncompress(compressed_log_data, log_data); 15*6777b538SAndroid Build Coastguard Worker } 16*6777b538SAndroid Build Coastguard Worker DecodeLogDataToProto(const std::string & compressed_log_data,google::protobuf::MessageLite * proto)17*6777b538SAndroid Build Coastguard Workerbool DecodeLogDataToProto(const std::string& compressed_log_data, 18*6777b538SAndroid Build Coastguard Worker google::protobuf::MessageLite* proto) { 19*6777b538SAndroid Build Coastguard Worker std::string log_data; 20*6777b538SAndroid Build Coastguard Worker if (!DecodeLogData(compressed_log_data, &log_data)) 21*6777b538SAndroid Build Coastguard Worker return false; 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker return proto->ParseFromString(log_data); 24*6777b538SAndroid Build Coastguard Worker } 25*6777b538SAndroid Build Coastguard Worker 26*6777b538SAndroid Build Coastguard Worker } // namespace metrics 27