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 virtual ~PlatformBootstrap() = default;
84
85 virtual void initialize() = 0;
86
87 virtual ::std::string_view getAssetRoot() = 0;
88
89 virtual ::std::string_view getSaveDataRoot() = 0;
90
91 virtual ::Bedrock::PlatformBootstrap::LoadResult
92 rawLoadAssetFile(char* buffer, uint64 bufferSize, char const* path, char* errorBuffer, uint64 errorBufferSize) = 0;
93
94 virtual ::Bedrock::PlatformBootstrap::LoadResult
95 rawLoadDataFile(char* buffer, uint64 bufferSize, char const* path, char* errorBuffer, uint64 errorBufferSize) = 0;
96
97 virtual ::Bedrock::PlatformBootstrap::SaveResult
98 rawSaveDataFile(char const*, uint64, char const*, bool, char*, uint64) = 0;
99
100 virtual ::Bedrock::PlatformBootstrap::LoadResult rawLoadFromCustomRoot(
101 char* buffer,
102 uint64 bufferSize,
103 char const* fullPath,
104 char* errorBuffer,
105 uint64 errorBufferSize
106 ) = 0;
107
108 virtual ::Bedrock::PlatformBootstrap::CreateDirectoryResult
109 rawCreateDirectory(char const* path, char* errorBuffer, uint64 errorBufferSize) = 0;
110 // NOLINTEND
111
112public:
113 // member functions
114 // NOLINTBEGIN
115 MCNAPI ::Bedrock::PlatformBootstrap::CreateDirectoryResult
116 _rawCreateDirectory_std(char const* path, char* errorBuffer, uint64 errorBufferSize);
117
118 MCNAPI ::Bedrock::PlatformBootstrap::LoadResult _rawLoadFile_cstdio(
119 char* buffer,
120 uint64 bufferSize,
121 ::std::string_view root,
122 char const* path,
123 char* errorBuffer,
124 uint64 errorBufferSize
125 );
126
127 MCNAPI ::Bedrock::PlatformBootstrap::SaveResult _rawSaveFile_cstdio(
128 char const* buffer,
129 uint64 bufferSize,
130 ::std::string_view root,
131 char const* path,
132 char* errorBuffer,
133 uint64 errorBufferSize
134 );
135 // NOLINTEND
136
137public:
138 // static functions
139 // NOLINTBEGIN
140 MCNAPI static ::Bedrock::PlatformBootstrap::CreateDirectoryResult
141 _makeCreateDirectoryError(::Bedrock::PlatformBootstrap::CreateDirectoryResultCode, char*, uint64, char const*, ...);
142
143 MCNAPI static ::Bedrock::PlatformBootstrap::LoadResult
144 _makeLoadError(::Bedrock::PlatformBootstrap::LoadResultCode, char*, uint64, char const*, ...);
145
146 MCNAPI static ::Bedrock::PlatformBootstrap::SaveResult
147 _makeSaveError(::Bedrock::PlatformBootstrap::SaveResultCode, char*, uint64, char const*, ...);
148
149#ifdef LL_PLAT_S
150 MCNAPI static ::Bedrock::PlatformBootstrap& getSharedInstance();
151#endif
152 // NOLINTEND
153
154public:
155 // virtual function thunks
156 // NOLINTBEGIN
157
158 // NOLINTEND
159};
160
161} // 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 *,...)
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