OXYGENHUB
◆ main openmsx / src / unittest / MemoryBufferFile.hh
831 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
e8555c89 Andy McCall 1
#ifndef MEMORYBUFFERFILE_HH
2
#define MEMORYBUFFERFILE_HH
3
4
#include "FileBase.hh"
5
6
namespace openmsx {
7
8
class File;
9
10
class MemoryBufferFile final : public FileBase
11
{
12
public:
13
	explicit MemoryBufferFile(std::span<const uint8_t> buffer_)
14
		: buffer(buffer_) {}
15
16
	void read(std::span<uint8_t> dst) override;
17
	void write(std::span<const uint8_t> src) override;
18
	[[nodiscard]] MappedFileImpl mmap(size_t extra, bool is_const) override;
19
20
	[[nodiscard]] size_t getSize() override;
21
	void seek(size_t newPos) override;
22
	[[nodiscard]] size_t getPos() override;
23
	void flush() override;
24
25
	[[nodiscard]] bool isReadOnly() const override;
26
	[[nodiscard]] time_t getModificationDate() override;
27
28
private:
29
	std::span<const uint8_t> buffer;
30
	size_t pos = 0;
31
};
32
33
File memory_buffer_file(std::span<const uint8_t> buffer);
34
35
} // namespace openmsx
36
37
#endif