Tramway SDK
file.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_PLATFORM_FILE_H
4#define TRAM_SDK_PLATFORM_FILE_H
5
6#include <cstddef>
7#include <string>
8#include <vector>
9
10namespace tram {
11
12enum class FileStatus {
14 READY
15};
16
17enum class FileMedium {
18 DISK,
19 USER,
20 ARCHIVE,
21 HTTP
22};
23
24struct FileSource {
26 std::string path;
27};
28
30public:
31 virtual ~FileReader() = default;
32
33 virtual const char* GetContents() = 0;
34 virtual size_t GetSize() = 0;
35 virtual FileStatus GetStatus() = 0;
36 virtual void Yeet() = 0;
37
38 static FileReader* GetReader(const char* path);
39
40 static void SetSearchList();
41 static std::vector<FileSource> GetSearchList();
42};
43
45public:
46 virtual ~FileWriter() = default;
47
48 virtual void SetContents(const char* contents, size_t size) = 0;
49 virtual FileStatus GetStatus() = 0;
50 virtual void Yeet() = 0;
51
52 static FileWriter* GetWriter(const char* path);
53
54 static void SetMediumList();
55 static std::vector<FileSource> GetMediumList();
56};
57
58}
59
60#endif // PLATFORM_FILE_H
Definition: file.h:29
static std::vector< FileSource > GetSearchList()
Definition: file.cpp:107
virtual size_t GetSize()=0
virtual const char * GetContents()=0
static void SetSearchList()
Definition: file.cpp:103
virtual void Yeet()=0
virtual ~FileReader()=default
static FileReader * GetReader(const char *path)
Definition: file.cpp:99
virtual FileStatus GetStatus()=0
Definition: file.h:44
virtual void SetContents(const char *contents, size_t size)=0
virtual void Yeet()=0
static void SetMediumList()
Definition: file.cpp:160
virtual ~FileWriter()=default
static std::vector< FileSource > GetMediumList()
Definition: file.cpp:164
static FileWriter * GetWriter(const char *path)
Definition: file.cpp:155
virtual FileStatus GetStatus()=0
Serialization, i.e.
FileMedium
Definition: file.h:17
FileStatus
Definition: file.h:12
Definition: file.h:24
FileMedium medium
Definition: file.h:25
std::string path
Definition: file.h:26