Merge "Expose PatchWriter for consumption"

This commit is contained in:
Kelvin Zhang authored and Gerrit Code Review committed 2021-07-24 00:25:03 +00:00
commit c1c7b9eaa7
4 files changed
+17 -14

No files matched your search

File renamed without changes.
+8 -7
View File
@@ -8,23 +8,24 @@
#include <stdint.h>
struct ControlEntry {
ControlEntry(uint64_t diff_size,
uint64_t extra_size,
int64_t offset_increment)
constexpr ControlEntry(uint64_t diff_size,
uint64_t extra_size,
int64_t offset_increment)
: diff_size(diff_size),
extra_size(extra_size),
offset_increment(offset_increment) {}
constexpr ControlEntry() = default;
// The number of bytes to copy from the source and diff stream.
uint64_t diff_size;
uint64_t diff_size{0};
// The number of bytes to copy from the extra stream.
uint64_t extra_size;
uint64_t extra_size{0};
// The value to add to the source pointer after patching from the diff stream.
int64_t offset_increment;
int64_t offset_increment{0};
bool operator==(const ControlEntry& o) const {
[[nodiscard]] bool operator==(const ControlEntry& o) const {
return diff_size == o.diff_size && extra_size == o.extra_size &&
offset_increment == o.offset_increment;
}
@@ -14,6 +14,15 @@
namespace bsdiff {
constexpr void EncodeInt64(int64_t x, uint8_t* buf) {
uint64_t y = x < 0 ? (1ULL << 63ULL) - x : x;
for (int i = 0; i < 8; ++i) {
buf[i] = y & 0xff;
y /= 256;
}
}
// A PatchWriterInterface class with three compressors and a 32-byte header.
class BsdiffPatchWriter : public PatchWriterInterface {
public:
-7
View File
@@ -15,13 +15,6 @@
namespace {
void EncodeInt64(int64_t x, uint8_t* buf) {
uint64_t y = x < 0 ? (1ULL << 63ULL) - x : x;
for (int i = 0; i < 8; ++i) {
buf[i] = y & 0xff;
y /= 256;
}
}
} // namespace