applypatch: Let Apply{BSDiff,Image}Patch accept std::function.

Test: mmma bootable/recovery system/update_engine
Test: recovery_component_test
Change-Id: I93c2caa87bf94a53509bb37f98f2c02bcadb6f5c
This commit is contained in:
Tao Bao
2017-02-01 10:20:10 -08:00
parent f7eb760fe7
commit c0e1c46a70
7 changed files with 127 additions and 160 deletions

View File

@@ -20,6 +20,7 @@
#include <stdint.h>
#include <sys/stat.h>
#include <functional>
#include <memory>
#include <string>
#include <vector>
@@ -41,7 +42,7 @@ struct FileContents {
// and use it as the source instead.
#define CACHE_TEMP_SOURCE "/cache/saved.file"
using SinkFn = size_t (*)(const unsigned char*, size_t, void*);
using SinkFn = std::function<size_t(const unsigned char*, size_t)>;
// applypatch.cpp
int ShowLicenses();
@@ -67,13 +68,13 @@ int SaveFileContents(const char* filename, const FileContents* file);
// bspatch.cpp
void ShowBSDiffLicense();
int ApplyBSDiffPatch(const unsigned char* old_data, size_t old_size, const Value* patch,
size_t patch_offset, SinkFn sink, void* token, SHA_CTX* ctx);
size_t patch_offset, SinkFn sink, SHA_CTX* ctx);
int ApplyBSDiffPatchMem(const unsigned char* old_data, size_t old_size, const Value* patch,
size_t patch_offset, std::vector<unsigned char>* new_data);
// imgpatch.cpp
int ApplyImagePatch(const unsigned char* old_data, size_t old_size, const Value* patch, SinkFn sink,
void* token, SHA_CTX* ctx, const Value* bonus_data);
SHA_CTX* ctx, const Value* bonus_data);
// freecache.cpp
int MakeFreeSpaceOnCache(size_t bytes_needed);

View File

@@ -19,9 +19,11 @@
#include <sys/types.h>
using SinkFn = size_t (*)(const unsigned char*, size_t, void*);
#include <functional>
using SinkFn = std::function<size_t(const unsigned char*, size_t)>;
int ApplyImagePatch(const unsigned char* old_data, size_t old_size, const unsigned char* patch_data,
size_t patch_size, SinkFn sink, void* token);
size_t patch_size, SinkFn sink);
#endif // _APPLYPATCH_IMGPATCH_H