// 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_APPLY_H_
#define COMPONENTS_ZUCCHINI_ZUCCHINI_APPLY_H_

#include "components/zucchini/image_utils.h"
#include "components/zucchini/patch_reader.h"
#include "components/zucchini/zucchini.h"

namespace zucchini {

// Reads equivalences from |patch_reader| to form preliminary |new_image|,
// copying regions from |old_image| and writing extra data from |patch_reader|.
bool ApplyEquivalenceAndExtraData(ConstBufferView old_image,
                                  const PatchElementReader& patch_reader,
                                  MutableBufferView new_image);

// Reads raw delta from |patch_reader| and applies corrections to |new_image|.
bool ApplyRawDelta(const PatchElementReader& patch_reader,
                   MutableBufferView new_image);

// Corrects references in |new_image| by projecting references from |old_image|
// and applying corrections from |patch_reader|. Both |old_image| and
// |new_image| are matching elements associated with |exe_type|.
bool ApplyReferencesCorrection(ExecutableType exe_type,
                               ConstBufferView old_image,
                               const PatchElementReader& patch_reader,
                               MutableBufferView new_image);

// Applies patch element with type |exe_type| from |patch_reader| on |old_image|
// to produce |new_image|.
bool ApplyElement(ExecutableType exe_type,
                  ConstBufferView old_image,
                  const PatchElementReader& patch_reader,
                  MutableBufferView new_image);

}  // namespace zucchini

#endif  // COMPONENTS_ZUCCHINI_ZUCCHINI_APPLY_H_
