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 Core { class FileOpenMode; }
12namespace Core { class FileSystemImpl; }
13namespace Core { class Result; }
14// clang-format on
15
16namespace Core {
17
18class FileImpl {
19public:
20 // FileImpl inner types declare
21 // clang-format off
22 struct WriteBufferInfo;
23 // clang-format on
24
25 // FileImpl inner types define
26 struct WriteBufferInfo {
27 public:
28 // member variables
29 // NOLINTBEGIN
32 // NOLINTEND
33
34 public:
35 // prevent constructor by default
36 WriteBufferInfo& operator=(WriteBufferInfo const&);
37 WriteBufferInfo(WriteBufferInfo const&);
38 WriteBufferInfo();
39 };
40
41public:
42 // member variables
43 // NOLINTBEGIN
48 // NOLINTEND
49
50public:
51 // prevent constructor by default
52 FileImpl& operator=(FileImpl const&);
53 FileImpl(FileImpl const&);
54 FileImpl();
55
56public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual ~FileImpl();
60
61 virtual ::Core::PathBuffer<::std::string> _getPath() const = 0;
62
63 virtual uint64 _getBlockSize() const = 0;
64
65 virtual bool _isOpen() = 0;
66
67 virtual ::Core::Result _close() = 0;
68
69 virtual ::Core::Result _read(void* buf, uint64 numBytes, uint64* pNumBytesRead) = 0;
70
71 virtual ::Core::Result _readExactly(void* buf, uint64 numBytes) = 0;
72
73 virtual ::Core::Result _skip(uint64 numBytes) = 0;
74
75 virtual ::Core::Result _readAtPosition(uint64 position, void* buf, uint64 numBytes, uint64* pNumBytesRead) = 0;
76
77 virtual ::Core::Result _getPosition(uint64* pSizeOut) = 0;
78
79 virtual ::Core::Result _setPosition(uint64 position) = 0;
80
81 virtual ::Core::Result _write(void const* buf, uint64 numBytes) = 0;
82
83 virtual ::Core::Result _flush() = 0;
84
85 virtual ::Core::Result _flushToOS();
86
87 virtual ::Core::Result _getSize(uint64* pSizeOut) = 0;
88
89 virtual ::Core::Result _getRemainingSize(uint64* pSizeOut) = 0;
90 // NOLINTEND
91
92public:
93 // member functions
94 // NOLINTBEGIN
95 MCNAPI FileImpl(::Core::FileSystemImpl* pTransaction, ::Core::FileOpenMode openMode);
96
97 MCNAPI ::Bedrock::Threading::UniqueLock<::std::recursive_mutex> _lockIfWriteBuffered(bool flushBuffer);
98
99 MCNAPI ::Core::Result _writeOperation(::Core::Result&& result, uint64 numBytesWritten);
100
102
103 MCNAPI ::Core::Result flush();
104
105 MCNAPI ::Core::Result read(void* buf, uint64 numBytes, uint64* pNumBytesRead);
106
107 MCNAPI ::Core::Result readAtPosition(uint64 position, void* pBuf, uint64 numBytes, uint64* pNumBytesRead);
108
109 MCNAPI ::Core::Result readExactly(void* buf, uint64 numBytes);
110
111 MCNAPI ::Core::Result write(void const* pBuf, uint64 numBytes);
112 // NOLINTEND
113
114public:
115 // static variables
116 // NOLINTBEGIN
117 MCNAPI static ::std::vector<::Core::FileImpl*>& sAllFiles();
118
119 MCNAPI static ::std::mutex& sAllFilesLock();
120 // NOLINTEND
121
122public:
123 // constructor thunks
124 // NOLINTBEGIN
125 MCNAPI void* $ctor(::Core::FileSystemImpl* pTransaction, ::Core::FileOpenMode openMode);
126 // NOLINTEND
127
128public:
129 // destructor thunk
130 // NOLINTBEGIN
131 MCNAPI void $dtor();
132 // NOLINTEND
133
134public:
135 // virtual function thunks
136 // NOLINTBEGIN
137 MCNAPI ::Core::Result $_flushToOS();
138
139
140 // NOLINTEND
141
142public:
143 // vftables
144 // NOLINTBEGIN
145 MCNAPI static void** $vftable();
146 // NOLINTEND
147};
148
149} // namespace Core
MCAPI::Core::Result readExactly(void *buf, uint64 numBytes)
MCAPI::Core::Result flush()
MCAPI::Core::Result write(void const *pBuf, uint64 numBytes)
MCAPI ::Bedrock::Threading::UniqueLock<::std::recursive_mutex > _lockIfWriteBuffered(bool flushBuffer)
MCAPI::Core::Result readAtPosition(uint64 position, void *pBuf, uint64 numBytes, uint64 *pNumBytesRead)
MCAPI void detachFromTransaction()
MCAPI void * $ctor(::Core::FileSystemImpl *pTransaction, ::Core::FileOpenMode openMode)
static MCAPI void ** $vftable()
MCAPI::Core::Result $_flushToOS()
static MCAPI ::std::mutex & sAllFilesLock()
MCAPI::Core::Result read(void *buf, uint64 numBytes, uint64 *pNumBytesRead)
MCAPI::Core::Result _writeOperation(::Core::Result &&result, uint64 numBytesWritten)
MCAPI FileImpl(::Core::FileSystemImpl *pTransaction, ::Core::FileOpenMode openMode)
static MCAPI ::std::vector<::Core::FileImpl * > & sAllFiles()
MCAPI void $dtor()
Definition FileOpenMode.h:7
Definition FileSystemImpl.h:30
Definition Result.h:11
Definition FileImpl.h:26
Definition Alias.h:14