diff options
author | bunnei <bunneidev@gmail.com> | 2018-09-25 22:59:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-25 22:59:44 +0200 |
commit | 7b81e1e52565ee867c285e2b0c2526f8d4b82581 (patch) | |
tree | 718decad5aae4153d8acaa444058914a1c12f147 /src/core/file_sys/vfs_vector.h | |
parent | Merge pull request #1393 from tech4me/svc (diff) | |
parent | fsmitm: Cleanup and modernize fsmitm port (diff) | |
download | yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.gz yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.bz2 yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.lz yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.xz yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.zst yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/file_sys/vfs_vector.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/file_sys/vfs_vector.h b/src/core/file_sys/vfs_vector.h index cba44a7a6..115c3ae95 100644 --- a/src/core/file_sys/vfs_vector.h +++ b/src/core/file_sys/vfs_vector.h @@ -8,6 +8,31 @@ namespace FileSys { +// An implementation of VfsFile that is backed by a vector optionally supplied upon construction +class VectorVfsFile : public VfsFile { +public: + explicit VectorVfsFile(std::vector<u8> initial_data = {}, std::string name = "", + VirtualDir parent = nullptr); + ~VectorVfsFile() override; + + std::string GetName() const override; + size_t GetSize() const override; + bool Resize(size_t new_size) override; + std::shared_ptr<VfsDirectory> GetContainingDirectory() const override; + bool IsWritable() const override; + bool IsReadable() const override; + size_t Read(u8* data, size_t length, size_t offset) const override; + size_t Write(const u8* data, size_t length, size_t offset) override; + bool Rename(std::string_view name) override; + + virtual void Assign(std::vector<u8> new_data); + +private: + std::vector<u8> data; + VirtualDir parent; + std::string name; +}; + // An implementation of VfsDirectory that maintains two vectors for subdirectories and files. // Vector data is supplied upon construction. class VectorVfsDirectory : public VfsDirectory { |