OXYGENHUB
◆ main openmsx / src / file / FileBase.hh
848 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
1
#ifndef FILEBASE_HH
2
#define FILEBASE_HH
3
4
#include "zstring_view.hh"
5
6
#include <cstdint>
7
#include <ctime>
8
#include <span>
9
10
namespace openmsx {
11
12
class MappedFileImpl;
13
14
class FileBase
15
{
16
public:
17
	virtual ~FileBase() = default;
18
19
	virtual void read(std::span<uint8_t> buffer) = 0;
20
	virtual void write(std::span<const uint8_t> buffer) = 0;
21
	[[nodiscard]] virtual MappedFileImpl mmap(size_t extra, bool is_const) = 0;
22
	[[nodiscard]] virtual size_t getSize() = 0;
23
	virtual void seek(size_t pos) = 0;
24
	[[nodiscard]] virtual size_t getPos() = 0;
25
	virtual void truncate(size_t size);
26
	virtual void flush() = 0;
27
28
	[[nodiscard]] virtual bool isLocalFile() const;
29
	[[nodiscard]] virtual zstring_view getOriginalName();
30
	[[nodiscard]] virtual bool isReadOnly() const = 0;
31
	[[nodiscard]] virtual time_t getModificationDate() = 0;
32
};
33
34
} // namespace openmsx
35
36
#endif