载入中...
搜索中...
未找到
File.h
浏览该文件的文档.
1#pragma once
2
3#include <string>
4
6
7namespace eve {
8namespace filesystem {
9
14class File {
15public:
19 static const int64_t ALL = -1;
20
24 virtual ~File();
25
32 virtual bool open(std::string mode) = 0;
33
39 virtual bool close() = 0;
40
44 virtual bool isOpen() const = 0;
45
51 virtual int64_t getSize() = 0;
52
59 virtual FileData *read(int64_t size = ALL);
60
68 virtual int64_t read(void *dst, int64_t size) = 0;
69
77 virtual bool write(const void *data, int64_t size) = 0;
78
86 virtual bool write(const Data *data, int64_t size = ALL);
87
92 virtual bool flush() = 0;
93
99 virtual bool isEOF() = 0;
100
106 virtual int64_t tell() = 0;
107
114 virtual bool seek(uint64_t pos) = 0;
115
128 virtual bool setBuffer(std::string bufmode, int64_t size) = 0;
129
134 virtual std::string getBuffer(int64_t &size) const = 0;
135
140 virtual std::string getMode() const = 0;
141
146 virtual std::string getFilename() const = 0;
147
152 virtual std::string getExtension() const;
153
154}; // File
155
156} // namespace filesystem
157} // namespace eve
Data buffer paired with a filename (used for type identification).
Definition FileData.h:12
A File interface, providing generic means of reading from and writing to files.
Definition File.h:14
virtual bool flush()=0
Flushes the currently buffered file data to disk. Only applicable in write mode.
virtual int64_t getSize()=0
Gets the size of the file.
virtual std::string getExtension() const
Gets the file extension for this File, or empty string if none.
Definition File.cpp:46
virtual int64_t tell()=0
Gets the current position in the File.
virtual bool setBuffer(std::string bufmode, int64_t size)=0
Sets the buffering mode for the file. When buffering is enabled,
virtual bool isOpen() const =0
Gets whether the file is open.
virtual int64_t read(void *dst, int64_t size)=0
Reads data into the destination buffer.
virtual std::string getMode() const =0
Gets the current mode of the File.
static const int64_t ALL
Used to indicate ALL data in a file.
Definition File.h:19
virtual ~File()
Destructor.
Definition File.cpp:7
virtual bool open(std::string mode)=0
Opens the file in a certain mode.
virtual bool isEOF()=0
Checks whether we are currently at end-of-file.
virtual FileData * read(int64_t size=ALL)
Reads data from the file and allocates a Data object.
Definition File.cpp:9
virtual bool write(const void *data, int64_t size)=0
Writes data into the File.
virtual std::string getFilename() const =0
Gets the filename for this File, or empty string if none.
virtual std::string getBuffer(int64_t &size) const =0
virtual bool close()=0
Closes the file.
virtual bool seek(uint64_t pos)=0
Seeks to a certain position in the File.
Definition Build.cpp:11