// Copyright 2015 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_BSPATCH_H_
|
#define _BSDIFF_BSPATCH_H_
|
|
#include <stddef.h>
|
#include <stdint.h>
|
|
#include <functional>
|
#include <memory>
|
#include <vector>
|
|
#include "bsdiff/extents_file.h"
|
|
namespace bsdiff {
|
|
BSDIFF_EXPORT
|
int bspatch(const char* old_filename,
|
const char* new_filename,
|
const char* patch_filename,
|
const char* old_extents,
|
const char* new_extents);
|
|
BSDIFF_EXPORT
|
int bspatch(const char* old_filename,
|
const char* new_filename,
|
const uint8_t* patch_data,
|
size_t patch_size,
|
const char* old_extents,
|
const char* new_extents);
|
|
BSDIFF_EXPORT
|
int bspatch(const uint8_t* old_data,
|
size_t old_size,
|
const uint8_t* patch_data,
|
size_t patch_size,
|
const std::function<size_t(const uint8_t*, size_t)>& sink);
|
|
BSDIFF_EXPORT
|
int bspatch(const std::unique_ptr<FileInterface>& old_file,
|
const std::unique_ptr<FileInterface>& new_file,
|
const uint8_t* patch_data,
|
size_t patch_size);
|
|
bool WriteAll(const std::unique_ptr<FileInterface>& file,
|
const uint8_t* data,
|
size_t size);
|
|
bool IsOverlapping(const char* old_filename,
|
const char* new_filename,
|
const std::vector<ex_t>& old_extents,
|
const std::vector<ex_t>& new_extents);
|
|
} // namespace bsdiff
|
|
#endif // _BSDIFF_BSPATCH_H_
|