summaryrefslogtreecommitdiffstats
path: root/fuse_sideload/include/fuse_provider.h
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2019-06-21 19:59:16 +0200
committerandroid-build-merger <android-build-merger@google.com>2019-06-21 19:59:16 +0200
commitfe52eb7869e044565fbcfee4917b48ae6a4f34c7 (patch)
treef7c88bc3bdc2b3dc0ad6b2d2dfe7d8fe80eb11da /fuse_sideload/include/fuse_provider.h
parentMerge "Implement the TargetFile and BuildInfo" am: 9b76970e9a am: 75c4b32e3a (diff)
parentMerge "Support starting fuse from a block map" am: 090b62832f (diff)
downloadandroid_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.h17
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: