summaryrefslogtreecommitdiffstats
path: root/fuse_sideload/include/fuse_provider.h
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2019-06-12 01:09:07 +0200
committerTianjie Xu <xunchang@google.com>2019-06-20 22:53:40 +0200
commitf6158eb918fb86f94e418244a9351379ad568563 (patch)
treebddde0da3fd2d6852f84e61887a69f8297fc1c2b /fuse_sideload/include/fuse_provider.h
parentMerge "InstallPackage now takes a package as parameter" (diff)
downloadandroid_bootable_recovery-f6158eb918fb86f94e418244a9351379ad568563.tar
android_bootable_recovery-f6158eb918fb86f94e418244a9351379ad568563.tar.gz
android_bootable_recovery-f6158eb918fb86f94e418244a9351379ad568563.tar.bz2
android_bootable_recovery-f6158eb918fb86f94e418244a9351379ad568563.tar.lz
android_bootable_recovery-f6158eb918fb86f94e418244a9351379ad568563.tar.xz
android_bootable_recovery-f6158eb918fb86f94e418244a9351379ad568563.tar.zst
android_bootable_recovery-f6158eb918fb86f94e418244a9351379ad568563.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: