diff options
author | Kelvin Zhang <zhangkelvin@google.com> | 2021-12-09 17:07:17 -0800 |
---|---|---|
committer | Kelvin Zhang <zhangkelvin@google.com> | 2021-12-24 06:09:25 -0800 |
commit | 4eae81e5957a445540f866a46e48b61b782d385f (patch) | |
tree | b459ae6c2c2acb681fff6d189ccaab1dd30e4821 /lz4diff/lz4patch.h | |
parent | ee481e4ce1ba7fed58708b19bbd98a74af6b2149 (diff) | |
download | update_engine-4eae81e5957a445540f866a46e48b61b782d385f.tar.gz |
Add lz4diff patch routines
Test: th
Bug: 206729162
Change-Id: I76a404e233e7683812bac65520c6c065e9a1ffe2
Diffstat (limited to 'lz4diff/lz4patch.h')
-rw-r--r-- | lz4diff/lz4patch.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lz4diff/lz4patch.h b/lz4diff/lz4patch.h new file mode 100644 index 00000000..56108917 --- /dev/null +++ b/lz4diff/lz4patch.h @@ -0,0 +1,50 @@ +// +// Copyright (C) 2021 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#ifndef UPDATE_ENGINE_LZ4DIFF_LZ4PATCH_H_ +#define UPDATE_ENGINE_LZ4DIFF_LZ4PATCH_H_ + +#include "lz4diff_format.h" + +namespace chromeos_update_engine { +bool Lz4Patch(std::string_view src_data, + std::string_view patch_data, + Blob* output); + +std::ostream& operator<<(std::ostream& out, const Lz4diffHeader&); + +template <typename T> +std::ostream& operator<<(std::ostream& out, + const google::protobuf::RepeatedPtrField<T>& arr) { + if (arr.empty()) { + out << "[]"; + return out; + } + out << "["; + auto begin = arr.begin(); + out << *begin; + ++begin; + for (; begin != arr.end(); ++begin) { + out << ", " << *begin; + } + out << "]"; + + return out; +} + +} // namespace chromeos_update_engine + +#endif |