mirror of
https://github.com/expo/bsdiff.git
synced 2026-11-14 17:49:03 -10:00
We modified the patch writer to have the capability to produce the smallest patch if multiple compressors are given. This type is supported for bsdf2 format only. Example usage: bsdiff --format=bsdf2 --type=bz2:brotli <src_file> <tgt_file> <patch_file> Test: diff & patch an apk file Change-Id: Icd4322f21975b82c5ee09f8feb9321f52c9813a4
49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
// 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.
|
|
|
|
#include "bsdiff/patch_writer_factory.h"
|
|
|
|
#include "bsdiff/endsley_patch_writer.h"
|
|
#include "bsdiff/patch_writer.h"
|
|
|
|
namespace bsdiff {
|
|
|
|
std::unique_ptr<PatchWriterInterface> CreateBsdiffPatchWriter(
|
|
const std::string& patch_filename) {
|
|
return std::unique_ptr<PatchWriterInterface>(
|
|
new BsdiffPatchWriter(patch_filename));
|
|
}
|
|
|
|
std::unique_ptr<PatchWriterInterface> CreateBSDF2PatchWriter(
|
|
const std::string& patch_filename,
|
|
CompressorType type,
|
|
int brotli_quality) {
|
|
return CreateBSDF2PatchWriter(
|
|
patch_filename, std::vector<CompressorType>{type}, brotli_quality);
|
|
}
|
|
|
|
std::unique_ptr<PatchWriterInterface> CreateBSDF2PatchWriter(
|
|
const std::string& patch_filename,
|
|
const std::vector<CompressorType>& types,
|
|
int brotli_quality) {
|
|
return std::unique_ptr<PatchWriterInterface>(
|
|
new BsdiffPatchWriter(patch_filename, types, brotli_quality));
|
|
}
|
|
|
|
std::unique_ptr<PatchWriterInterface> CreateEndsleyPatchWriter(
|
|
std::vector<uint8_t>* patch,
|
|
CompressorType type,
|
|
int brotli_quality) {
|
|
return std::unique_ptr<PatchWriterInterface>(
|
|
new EndsleyPatchWriter(patch, type, brotli_quality));
|
|
}
|
|
|
|
std::unique_ptr<PatchWriterInterface> CreateEndsleyPatchWriter(
|
|
std::vector<uint8_t>* patch) {
|
|
return std::unique_ptr<PatchWriterInterface>(
|
|
new EndsleyPatchWriter(patch, CompressorType::kNoCompression, 0));
|
|
}
|
|
|
|
} // namespace bsdiff
|