LeviLamina
Loading...
Searching...
No Matches
FileImpl.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/file/PathBuffer.h"
7#include "mc/platform/threading/UniqueLock.h"
8
9// auto generated forward declare list
10// clang-format off
11namespace Bedrock::Threading { class Mutex; }
12namespace Core { class FileOpenMode; }
13namespace Core { class FileSystemImpl; }
14namespace Core { class Result; }
15// clang-format on
16
17namespace Core {
18
19class FileImpl {
20public:
21 // FileImpl inner types declare
22 // clang-format off
23 struct WriteBufferInfo;
24 // clang-format on
25
26 // FileImpl inner types define
28 public:
29 // member variables
30 // NOLINTBEGIN
33 // NOLINTEND
34
35 public:
36 // prevent constructor by default
37 WriteBufferInfo& operator=(WriteBufferInfo const&);
40 };
41
42public:
43 // member variables
44 // NOLINTBEGIN
49 // NOLINTEND
50
51public:
52 // prevent constructor by default
53 FileImpl& operator=(FileImpl const&);
54 FileImpl(FileImpl const&);
55 FileImpl();
56
57public:
58 // virtual functions
59 // NOLINTBEGIN
60 // vIndex: 0
61 virtual ~FileImpl();
62
63 // vIndex: 1
64 virtual ::Core::PathBuffer<::std::string> _getPath() const = 0;
65
66 // vIndex: 2
67 virtual uint64 _getBlockSize() const = 0;
68
69 // vIndex: 3
70 virtual bool _isOpen() = 0;
71
72 // vIndex: 4
73 virtual ::Core::Result _close() = 0;
74
75 // vIndex: 5
76 virtual ::Core::Result _read(void*, uint64, uint64*) = 0;
77
78 // vIndex: 6
79 virtual ::Core::Result _readExactly(void*, uint64) = 0;
80
81 // vIndex: 7
82 virtual ::Core::Result _skip(uint64) = 0;
83
84 // vIndex: 8
85 virtual ::Core::Result _readAtPosition(uint64, void*, uint64, uint64*) = 0;
86
87 // vIndex: 9
88 virtual ::Core::Result _getPosition(uint64*) = 0;
89
90 // vIndex: 10
91 virtual ::Core::Result _setPosition(uint64) = 0;
92
93 // vIndex: 11
94 virtual ::Core::Result _write(void const*, uint64) = 0;
95
96 // vIndex: 12
97 virtual ::Core::Result _flush() = 0;
98
99 // vIndex: 13
100 virtual ::Core::Result _getSize(uint64*) = 0;
101
102 // vIndex: 14
103 virtual ::Core::Result _getRemainingSize(uint64*) = 0;
104 // NOLINTEND
105
106public:
107 // member functions
108 // NOLINTBEGIN
109 MCAPI FileImpl(::Core::FileSystemImpl* pTransaction, ::Core::FileOpenMode openMode);
110
111 MCAPI ::Bedrock::Threading::UniqueLock<::std::recursive_mutex> _lockIfWriteBuffered(bool flushBuffer);
112
113 MCAPI ::Core::Result _writeOperation(::Core::Result&& result, uint64 numBytesWritten);
114
115 MCAPI ::Core::Result close();
116
117 MCAPI ::Core::Result getPosition(uint64* pPosition);
118
119 MCAPI ::Core::Result read(void* buf, uint64 numBytes, uint64* pNumBytesRead);
120
121 MCAPI ::Core::Result readAtPosition(uint64 position, void* pBuf, uint64 numBytes, uint64* pNumBytesRead);
122
123 MCAPI ::Core::Result readExactly(void* buf, uint64 numBytes);
124
125 MCAPI ::Core::Result setPosition(uint64 position);
126
127 MCAPI ::Core::Result skip(uint64 numBytes);
128
129 MCAPI ::Core::Result write(void const* pBuf, uint64 numBytes);
130 // NOLINTEND
131
132public:
133 // static variables
134 // NOLINTBEGIN
135 MCAPI static ::std::vector<::Core::FileImpl*>& sAllFiles();
136
137 MCAPI static ::Bedrock::Threading::Mutex& sAllFilesLock();
138 // NOLINTEND
139
140public:
141 // constructor thunks
142 // NOLINTBEGIN
143 MCAPI void* $ctor(::Core::FileSystemImpl* pTransaction, ::Core::FileOpenMode openMode);
144 // NOLINTEND
145
146public:
147 // destructor thunk
148 // NOLINTBEGIN
149 MCAPI void $dtor();
150 // NOLINTEND
151
152public:
153 // virtual function thunks
154 // NOLINTBEGIN
155
156 // NOLINTEND
157
158public:
159 // vftables
160 // NOLINTBEGIN
161 MCAPI static void** $vftable();
162 // NOLINTEND
163};
164
165} // namespace Core
Definition FileImpl.h:19
Definition FileOpenMode.h:7
Definition FileSystemImpl.h:31
Definition Result.h:17
Definition Result.h:6
Definition FileImpl.h:27
Definition Alias.h:14