1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // 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 <string>
- #include "base/strings/string_piece.h"
- namespace compression {
- // Compresses the data in |input| using gzip, storing the result in
- // |output_buffer|, of size |output_buffer_size|. If the buffer is large enough
- // and compression succeeds, |compressed_size| points to the compressed data
- // size after the call.
- // |malloc_fn| and |free_fn| are pointers to malloc() and free()-like functions,
- // or nullptr to use the standard ones.
- // Returns true for success.
- bool GzipCompress(base::StringPiece input,
- char* output_buffer,
- size_t output_buffer_size,
- size_t* compressed_size,
- void* (*malloc_fn)(size_t),
- void (*free_fn)(void*));
- // Compresses the data in |input| using gzip, storing the result in |output|.
- // |input| and |output| are allowed to point to the same string (in-place
- // operation).
- // Returns true for success.
- bool GzipCompress(base::StringPiece 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).
- // Returns true for success.
- 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.
- // Returns true for success.
- bool GzipUncompress(base::StringPiece input, base::StringPiece output);
- // Uncompresses the data in |input| using gzip, and writes the results to
- // |output|, which must NOT be the underlying string of |input|, and is resized
- // if necessary.
- // Returns true for success.
- bool GzipUncompress(base::StringPiece input, std::string* 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_
|