// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_ZLIB_GOOGLE_COMPRESSION_UTILS_H_ #define THIRD_PARTY_ZLIB_GOOGLE_COMPRESSION_UTILS_H_ #include #include "base/strings/string_piece.h" namespace compression { // Compresses the data in |input| using gzip, storing the result in |output|. // |input| and |output| are allowed to be the same string (in-place operation). bool GzipCompress(const std::string& input, std::string* output); // Uncompresses the data in |input| using gzip, storing the result in |output|. // |input| and |output| are allowed to be the same string (in-place operation). bool GzipUncompress(const std::string& input, std::string* output); // Like the above method, but uses base::StringPiece to avoid allocations if // needed. |output|'s size must be at least as large as the return value from // GetUncompressedSize. bool GzipUncompress(base::StringPiece input, base::StringPiece output); // Returns the uncompressed size from GZIP-compressed |compressed_data|. uint32_t GetUncompressedSize(base::StringPiece compressed_data); } // namespace compression #endif // THIRD_PARTY_ZLIB_GOOGLE_COMPRESSION_UTILS_H_