MemoryBufferFile.hh 713 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef MEMORYBUFFERFILE_HH
  2. #define MEMORYBUFFERFILE_HH
  3. #include "FileBase.hh"
  4. namespace openmsx {
  5. class File;
  6. class MemoryBufferFile final : public FileBase
  7. {
  8. public:
  9. MemoryBufferFile(span<const uint8_t> buffer_)
  10. : buffer(buffer_) {}
  11. void read(void* dst, size_t num) override;
  12. void write(const void* src, size_t num) override;
  13. size_t getSize() override;
  14. void seek(size_t newPos) override;
  15. size_t getPos() override;
  16. void flush() override;
  17. std::string getURL() const override;
  18. bool isReadOnly() const override;
  19. time_t getModificationDate() override;
  20. private:
  21. span<const uint8_t> buffer;
  22. size_t pos = 0;
  23. };
  24. File memory_buffer_file(span<const uint8_t> buffer);
  25. } // namespace openmsx
  26. #endif