Create a FuseDataProvider base class

The fuse data provider for adb/sdcard shares common code and structures.
This cl creates a FuseDataProvider base class and provides
implementations for adb and sdcard.

In the follow cls, we can kill the provider_vtab struct; and also add
another implementation to parse a block map file and provides data.

Test: unit tests pass, sideload a package, apply a package from sdcard
Change-Id: If8311666a52a2e3c0fbae0ee9688fa6d01e4ad09
This commit is contained in:
xunchang
2019-03-17 16:45:12 -07:00
parent 698dc08561
commit ea2912f187
16 changed files with 250 additions and 136 deletions

View File

@@ -53,9 +53,9 @@ TEST(SideloadTest, run_fuse_sideload) {
provider_vtab vtab;
vtab.close = [](void) {};
vtab.read_block = [&blocks](uint32_t block, uint8_t* buffer, uint32_t fetch_size) {
if (block >= 4) return -1;
if (block >= 4) return false;
blocks[block].copy(reinterpret_cast<char*>(buffer), fetch_size);
return 0;
return true;
};
TemporaryDir mount_point;