LeviLamina
Loading...
Searching...
No Matches
PlatformBootstrap.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5namespace Bedrock {
6
8public:
9 // PlatformBootstrap inner types declare
10 // clang-format off
12 struct LoadResult;
13 struct SaveResult;
14 // clang-format on
15
16 // PlatformBootstrap inner types define
17 enum class CreateDirectoryResultCode : int {
18 Success = 0,
19 Failure = 1,
20 };
21
22 enum class LoadResultCode : int {
23 Success = 0,
24 FailedToOpen = 1,
25 FailedToRead = 2,
26 BufferTooSmall = 3,
27 };
28
29 enum class SaveResultCode : int {
30 Success = 0,
31 FailedToOpen = 1,
32 FailedToWrite = 2,
33 IncorrectBytesWrittenCount = 3,
34 };
35
36 struct CreateDirectoryResult {
37 public:
38 // member variables
39 // NOLINTBEGIN
41 // NOLINTEND
42
43 public:
44 // prevent constructor by default
45 CreateDirectoryResult& operator=(CreateDirectoryResult const&);
46 CreateDirectoryResult(CreateDirectoryResult const&);
47 CreateDirectoryResult();
48 };
49
50 struct LoadResult {
51 public:
52 // member variables
53 // NOLINTBEGIN
56 // NOLINTEND
57
58 public:
59 // prevent constructor by default
60 LoadResult& operator=(LoadResult const&);
61 LoadResult(LoadResult const&);
62 LoadResult();
63 };
64
65 struct SaveResult {
66 public:
67 // member variables
68 // NOLINTBEGIN
71 // NOLINTEND
72
73 public:
74 // prevent constructor by default
75 SaveResult& operator=(SaveResult const&);
76 SaveResult(SaveResult const&);
77 SaveResult();
78 };
79
80public:
81 // virtual functions
82 // NOLINTBEGIN
83#ifdef LL_PLAT_C
84 virtual void initialize() = 0;
85
86 virtual ::std::string_view getAssetRoot() = 0;
87
88 virtual ::std::string_view getSaveDataRoot() = 0;
89
90 virtual ::Bedrock::PlatformBootstrap::LoadResult
91 rawLoadAssetFile(char* buffer, uint64 bufferSize, char const* path, char* errorBuffer, uint64 errorBufferSize) = 0;
92
93 virtual ::Bedrock::PlatformBootstrap::LoadResult
94 rawLoadDataFile(char* buffer, uint64 bufferSize, char const* path, char* errorBuffer, uint64 errorBufferSize) = 0;
95
96 virtual ::Bedrock::PlatformBootstrap::SaveResult
97 rawSaveDataFile(char const*, uint64, char const*, bool, char*, uint64) = 0;
98
99 virtual ::Bedrock::PlatformBootstrap::LoadResult rawLoadFromCustomRoot(
100 char* buffer,
101 uint64 bufferSize,
102 char const* fullPath,
103 char* errorBuffer,
104 uint64 errorBufferSize
105 ) = 0;
106
107 virtual ::Bedrock::PlatformBootstrap::CreateDirectoryResult
108 rawCreateDirectory(char const* path, char* errorBuffer, uint64 errorBufferSize) = 0;
109#endif
110
111 // NOLINTEND
112
113public:
114 // member functions
115 // NOLINTBEGIN
116 MCNAPI ::Bedrock::PlatformBootstrap::CreateDirectoryResult
117 _rawCreateDirectory_std(char const* path, char* errorBuffer, uint64 errorBufferSize);
118
119 MCNAPI ::Bedrock::PlatformBootstrap::LoadResult _rawLoadFile_cstdio(
120 char* buffer,
121 uint64 bufferSize,
122 ::std::string_view root,
123 char const* path,
124 char* errorBuffer,
125 uint64 errorBufferSize
126 );
127
128 MCNAPI ::Bedrock::PlatformBootstrap::SaveResult _rawSaveFile_cstdio(
129 char const* buffer,
130 uint64 bufferSize,
131 ::std::string_view root,
132 char const* path,
133 char* errorBuffer,
134 uint64 errorBufferSize
135 );
136 // NOLINTEND
137
138public:
139 // static functions
140 // NOLINTBEGIN
141 MCNAPI static ::Bedrock::PlatformBootstrap::CreateDirectoryResult
142 _makeCreateDirectoryError(::Bedrock::PlatformBootstrap::CreateDirectoryResultCode, char*, uint64, char const*, ...);
143
144 MCNAPI static ::Bedrock::PlatformBootstrap::LoadResult
145 _makeLoadError(::Bedrock::PlatformBootstrap::LoadResultCode, char*, uint64, char const*, ...);
146
147 MCNAPI static ::Bedrock::PlatformBootstrap::SaveResult
148 _makeSaveError(::Bedrock::PlatformBootstrap::SaveResultCode, char*, uint64, char const*, ...);
149
150 MCNAPI static ::Bedrock::PlatformBootstrap& getSharedInstance();
151 // NOLINTEND
152
153public:
154 // virtual function thunks
155 // NOLINTBEGIN
156
157 // NOLINTEND
158};
159
160} // namespace Bedrock
Definition PlatformBootstrap.h:7
static MCAPI ::Bedrock::PlatformBootstrap::LoadResult _makeLoadError(::Bedrock::PlatformBootstrap::LoadResultCode, char *, uint64, char const *,...)
MCAPI::Bedrock::PlatformBootstrap::SaveResult _rawSaveFile_cstdio(char const *buffer, uint64 bufferSize, ::std::string_view root, char const *path, char *errorBuffer, uint64 errorBufferSize)
static MCAPI ::Bedrock::PlatformBootstrap::SaveResult _makeSaveError(::Bedrock::PlatformBootstrap::SaveResultCode, char *, uint64, char const *,...)
static MCAPI ::Bedrock::PlatformBootstrap & getSharedInstance()
MCAPI::Bedrock::PlatformBootstrap::LoadResult _rawLoadFile_cstdio(char *buffer, uint64 bufferSize, ::std::string_view root, char const *path, char *errorBuffer, uint64 errorBufferSize)
static MCAPI ::Bedrock::PlatformBootstrap::CreateDirectoryResult _makeCreateDirectoryError(::Bedrock::PlatformBootstrap::CreateDirectoryResultCode, char *, uint64, char const *,...)
MCAPI::Bedrock::PlatformBootstrap::CreateDirectoryResult _rawCreateDirectory_std(char const *path, char *errorBuffer, uint64 errorBufferSize)
Definition PlatformBootstrap.h:36
Definition PlatformBootstrap.h:50
Definition PlatformBootstrap.h:65
Definition buffer.h:5
Definition Alias.h:14