| // Copyright 2017 The Chromium OS 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 _BSDIFF_PATCH_WRITER_FACTORY_H_ |
| #define _BSDIFF_PATCH_WRITER_FACTORY_H_ |
| |
| #include <memory> |
| #include <string> |
| #include <vector> |
| |
| #include "bsdiff/common.h" |
| #include "bsdiff/constants.h" |
| #include "bsdiff/patch_writer_interface.h" |
| |
| namespace bsdiff { |
| |
| // Create a patch writer compatible with upstream's "BSDIFF40" patch format |
| // using bz2 as a compressor. |
| BSDIFF_EXPORT |
| std::unique_ptr<PatchWriterInterface> CreateBsdiffPatchWriter( |
| const std::string& patch_filename); |
| |
| // Create a patch writer using the "BSDF2" patch format. It uses the compressor |
| // specified in |type|. And the brotli compressor will have the compression |
| // quality |brotli_quality|. |
| BSDIFF_EXPORT |
| std::unique_ptr<PatchWriterInterface> CreateBSDF2PatchWriter( |
| const std::string& patch_filename, |
| CompressorType type, |
| int brotli_quality); |
| |
| // Create a patch writer using the "BSDF2" patch format. It also tries all the |
| // compressors in |types| to generate the smallest patch. |
| BSDIFF_EXPORT |
| std::unique_ptr<PatchWriterInterface> CreateBSDF2PatchWriter( |
| const std::string& patch_filename, |
| const std::vector<CompressorType>& types, |
| int brotli_quality); |
| |
| // Create a patch writer compatible with Android Play Store bsdiff patches. |
| // The data will be written to the passed |patch| vector, which must be valid |
| // until Close() is called or this patch is destroyed. The data will be |
| // compressed using the compressor type |type|. To get an uncompressed patch, |
| // pass CompressortType::kNoCompression. |
| BSDIFF_EXPORT |
| std::unique_ptr<PatchWriterInterface> CreateEndsleyPatchWriter( |
| std::vector<uint8_t>* patch, |
| CompressorType type, |
| int brotli_quality); |
| |
| // Helper function to create an Endsley patch writer with no compression. |
| BSDIFF_EXPORT |
| std::unique_ptr<PatchWriterInterface> CreateEndsleyPatchWriter( |
| std::vector<uint8_t>* patch); |
| |
| |
| } // namespace bsdiff |
| |
| #endif // _BSDIFF_PATCH_WRITER_FACTORY_H_ |