diff options
author | Tianjie Xu <xunchang@google.com> | 2019-06-21 19:59:16 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-06-21 19:59:16 +0200 |
commit | fe52eb7869e044565fbcfee4917b48ae6a4f34c7 (patch) | |
tree | f7c88bc3bdc2b3dc0ad6b2d2dfe7d8fe80eb11da /fuse_sideload/include/fuse_provider.h | |
parent | Merge "Implement the TargetFile and BuildInfo" am: 9b76970e9a am: 75c4b32e3a (diff) | |
parent | Merge "Support starting fuse from a block map" am: 090b62832f (diff) | |
download | android_bootable_recovery-fe52eb7869e044565fbcfee4917b48ae6a4f34c7.tar android_bootable_recovery-fe52eb7869e044565fbcfee4917b48ae6a4f34c7.tar.gz android_bootable_recovery-fe52eb7869e044565fbcfee4917b48ae6a4f34c7.tar.bz2 android_bootable_recovery-fe52eb7869e044565fbcfee4917b48ae6a4f34c7.tar.lz android_bootable_recovery-fe52eb7869e044565fbcfee4917b48ae6a4f34c7.tar.xz android_bootable_recovery-fe52eb7869e044565fbcfee4917b48ae6a4f34c7.tar.zst android_bootable_recovery-fe52eb7869e044565fbcfee4917b48ae6a4f34c7.zip |
Diffstat (limited to 'fuse_sideload/include/fuse_provider.h')
-rw-r--r-- | fuse_sideload/include/fuse_provider.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/fuse_sideload/include/fuse_provider.h b/fuse_sideload/include/fuse_provider.h index 8d4ea4073..3cdaef33d 100644 --- a/fuse_sideload/include/fuse_provider.h +++ b/fuse_sideload/include/fuse_provider.h @@ -44,6 +44,8 @@ class FuseDataProvider { virtual bool ReadBlockAlignedData(uint8_t* buffer, uint32_t fetch_size, uint32_t start_block) const = 0; + virtual bool Valid() const = 0; + virtual void Close() {} protected: @@ -60,10 +62,13 @@ class FuseFileDataProvider : public FuseDataProvider { public: FuseFileDataProvider(const std::string& path, uint32_t block_size); + static std::unique_ptr<FuseDataProvider> CreateFromFile(const std::string& path, + uint32_t block_size); + bool ReadBlockAlignedData(uint8_t* buffer, uint32_t fetch_size, uint32_t start_block) const override; - bool Valid() const { + bool Valid() const override { return fd_ != -1; } @@ -78,14 +83,20 @@ class FuseFileDataProvider : public FuseDataProvider { class FuseBlockDataProvider : public FuseDataProvider { public: // Constructs the fuse provider from the block map. - static std::unique_ptr<FuseBlockDataProvider> CreateFromBlockMap( - const std::string& block_map_path, uint32_t fuse_block_size); + static std::unique_ptr<FuseDataProvider> CreateFromBlockMap(const std::string& block_map_path, + uint32_t fuse_block_size); RangeSet ranges() const { return ranges_; } + bool ReadBlockAlignedData(uint8_t* buffer, uint32_t fetch_size, uint32_t start_block) const override; + + bool Valid() const override { + return fd_ != -1; + } + void Close() override; private: |