blob: 5f0dbc911e1241a811eba36a5426a9ee20352236 [file] [log] [blame]
Alex Deymo8a179e52017-10-26 17:10:20 +02001// Copyright 2017 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "bsdiff/patch_writer_factory.h"
6
Alex Deymo710b3da2017-10-26 13:13:28 +02007#include "bsdiff/endsley_patch_writer.h"
Alex Deymo8a179e52017-10-26 17:10:20 +02008#include "bsdiff/patch_writer.h"
9
10namespace bsdiff {
11
12std::unique_ptr<PatchWriterInterface> CreateBsdiffPatchWriter(
13 const std::string& patch_filename) {
14 return std::unique_ptr<PatchWriterInterface>(
Tianjie Xu1f1cdb22017-11-20 11:05:55 -080015 new BsdiffPatchWriter(patch_filename));
16}
17
18std::unique_ptr<PatchWriterInterface> CreateBSDF2PatchWriter(
19 const std::string& patch_filename,
20 CompressorType type,
Tianjie Xu2e70b552018-03-02 16:22:10 -080021 int brotli_quality) {
Tianjie Xu77833b62018-03-07 18:13:47 -080022 return CreateBSDF2PatchWriter(
23 patch_filename, std::vector<CompressorType>{type}, brotli_quality);
24}
25
26std::unique_ptr<PatchWriterInterface> CreateBSDF2PatchWriter(
27 const std::string& patch_filename,
28 const std::vector<CompressorType>& types,
29 int brotli_quality) {
Tianjie Xu1f1cdb22017-11-20 11:05:55 -080030 return std::unique_ptr<PatchWriterInterface>(
Tianjie Xu77833b62018-03-07 18:13:47 -080031 new BsdiffPatchWriter(patch_filename, types, brotli_quality));
Alex Deymo8a179e52017-10-26 17:10:20 +020032}
33
Alex Deymo710b3da2017-10-26 13:13:28 +020034std::unique_ptr<PatchWriterInterface> CreateEndsleyPatchWriter(
Alex Deymo19fc5752018-02-15 16:56:39 +010035 std::vector<uint8_t>* patch,
36 CompressorType type,
Tianjie Xu2e70b552018-03-02 16:22:10 -080037 int brotli_quality) {
Alex Deymo19fc5752018-02-15 16:56:39 +010038 return std::unique_ptr<PatchWriterInterface>(
Tianjie Xu2e70b552018-03-02 16:22:10 -080039 new EndsleyPatchWriter(patch, type, brotli_quality));
Alex Deymo19fc5752018-02-15 16:56:39 +010040}
41
42std::unique_ptr<PatchWriterInterface> CreateEndsleyPatchWriter(
Alex Deymo710b3da2017-10-26 13:13:28 +020043 std::vector<uint8_t>* patch) {
Alex Deymo19fc5752018-02-15 16:56:39 +010044 return std::unique_ptr<PatchWriterInterface>(
45 new EndsleyPatchWriter(patch, CompressorType::kNoCompression, 0));
Alex Deymo710b3da2017-10-26 13:13:28 +020046}
47
Alex Deymo8a179e52017-10-26 17:10:20 +020048} // namespace bsdiff