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
27 struct WriteBufferInfo {
28 public:
29 // member variables
30 // NOLINTBEGIN
33 // NOLINTEND
34
35 public:
36 // prevent constructor by default
37 WriteBufferInfo& operator=(WriteBufferInfo const&);
38 WriteBufferInfo(WriteBufferInfo const&);
39 WriteBufferInfo();
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 virtual ~FileImpl();
61
62 virtual ::Core::PathBuffer<::std::string> _getPath() const = 0;
63
64 virtual uint64 _getBlockSize() const = 0;
65
66 virtual bool _isOpen() = 0;
67
68 virtual ::Core::Result _close() = 0;
69
70 virtual ::Core::Result _read(void*, uint64, uint64*) = 0;
71
72 virtual ::Core::Result _readExactly(void*, uint64) = 0;
73
74 virtual ::Core::Result _skip(uint64) = 0;
75
76 virtual ::Core::Result _readAtPosition(uint64, void*, uint64, uint64*) = 0;
77
78 virtual ::Core::Result _getPosition(uint64*) = 0;
79
80 virtual ::Core::Result _setPosition(uint64) = 0;
81
82 virtual ::Core::Result _write(void const*, uint64) = 0;
83
84 virtual ::Core::Result _flush() = 0;
85
86 virtual ::Core::Result _getSize(uint64*) = 0;
87
88 virtual ::Core::Result _getRemainingSize(uint64*) = 0;
89 // NOLINTEND
90
91public:
92 // member functions
93 // NOLINTBEGIN
94 MCNAPI FileImpl(::Core::FileSystemImpl* pTransaction, ::Core::FileOpenMode openMode);
95
96 MCNAPI ::Bedrock::Threading::UniqueLock<::std::recursive_mutex> _lockIfWriteBuffered(bool flushBuffer);
97
98 MCNAPI ::Core::Result _writeOperation(::Core::Result&& result, uint64 numBytesWritten);
99
100 MCNAPI ::Core::Result close();
101
103
104 MCNAPI ::Core::Result getPosition(uint64* pPosition);
105
106 MCNAPI ::Core::Result read(void* buf, uint64 numBytes, uint64* pNumBytesRead);
107
108 MCNAPI ::Core::Result readAtPosition(uint64 position, void* pBuf, uint64 numBytes, uint64* pNumBytesRead);
109
110 MCNAPI ::Core::Result readExactly(void* buf, uint64 numBytes);
111
112 MCNAPI ::Core::Result setPosition(uint64 position);
113
114 MCNAPI ::Core::Result skip(uint64 numBytes);
115
116 MCNAPI ::Core::Result write(void const* pBuf, uint64 numBytes);
117 // NOLINTEND
118
119public:
120 // static variables
121 // NOLINTBEGIN
122 MCNAPI static ::std::vector<::Core::FileImpl*>& sAllFiles();
123
124 MCNAPI static ::Bedrock::Threading::Mutex& sAllFilesLock();
125 // NOLINTEND
126
127public:
128 // constructor thunks
129 // NOLINTBEGIN
130 MCNAPI void* $ctor(::Core::FileSystemImpl* pTransaction, ::Core::FileOpenMode openMode);
131 // NOLINTEND
132
133public:
134 // destructor thunk
135 // NOLINTBEGIN
136 MCNAPI void $dtor();
137 // NOLINTEND
138
139public:
140 // virtual function thunks
141 // NOLINTBEGIN
142
143 // NOLINTEND
144
145public:
146 // vftables
147 // NOLINTBEGIN
148 MCNAPI static void** $vftable();
149 // NOLINTEND
150};
151
152} // namespace Core
Definition Mutex.h:10
MCAPI::Core::Result readExactly(void *buf, uint64 numBytes)
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::Core::Result close()
MCAPI void detachFromTransaction()
MCAPI::Core::Result setPosition(uint64 position)
MCAPI void * $ctor(::Core::FileSystemImpl *pTransaction, ::Core::FileOpenMode openMode)
MCAPI::Core::Result getPosition(uint64 *pPosition)
static MCAPI ::Bedrock::Threading::Mutex & sAllFilesLock()
static MCAPI void ** $vftable()
MCAPI::Core::Result skip(uint64 numBytes)
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:27
Definition Alias.h:14