| // Copyright 2017 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 COMPONENTS_ZUCCHINI_ZUCCHINI_H_ |
| #define COMPONENTS_ZUCCHINI_ZUCCHINI_H_ |
| |
| #include "components/zucchini/buffer_view.h" |
| #include "components/zucchini/patch_reader.h" |
| #include "components/zucchini/patch_writer.h" |
| |
| // Definitions, structures, and interfaces for the Zucchini library. |
| |
| namespace zucchini { |
| |
| namespace status { |
| |
| // Zucchini status code, which can also be used as process exit code. Therefore |
| // success is explicitly 0. |
| enum Code { |
| kStatusSuccess = 0, |
| kStatusInvalidParam = 1, |
| kStatusFileReadError = 2, |
| kStatusFileWriteError = 3, |
| kStatusPatchReadError = 4, |
| kStatusPatchWriteError = 5, |
| kStatusInvalidOldImage = 6, |
| kStatusInvalidNewImage = 7, |
| kStatusFatal = 8, |
| }; |
| |
| } // namespace status |
| |
| // Generates ensemble patch from |old_image| to |new_image|, and writes it to |
| // |patch_writer|. |
| status::Code GenerateEnsemble(ConstBufferView old_image, |
| ConstBufferView new_image, |
| EnsemblePatchWriter* patch_writer); |
| |
| // Generates raw patch from |old_image| to |new_image|, and writes it to |
| // |patch_writer|. |
| status::Code GenerateRaw(ConstBufferView old_image, |
| ConstBufferView new_image, |
| EnsemblePatchWriter* patch_writer); |
| |
| // Applies |patch_reader| to |old_image| to build |new_image|, which refers to |
| // preallocated memory of sufficient size. |
| status::Code Apply(ConstBufferView old_image, |
| const EnsemblePatchReader& patch_reader, |
| MutableBufferView new_image); |
| |
| } // namespace zucchini |
| |
| #endif // COMPONENTS_ZUCCHINI_ZUCCHINI_H_ |