LeviLamina
Loading...
Searching...
No Matches
FileUploadManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/util/FileInfo.h"
8#include "mc/util/UploadError.h"
9#include "mc/util/UploadState.h"
10
11// auto generated forward declare list
12// clang-format off
13class FileArchiver;
15class IFilePicker;
16class TaskGroup;
17struct FileChunkInfo;
18namespace Core { class Path; }
19namespace Json { class Value; }
20// clang-format on
21
22class FileUploadManager : public ::std::enable_shared_from_this<::FileUploadManager> {
23public:
24 // FileUploadManager inner types declare
25 // clang-format off
27 // clang-format on
28
29 // FileUploadManager inner types define
31 public:
32 // member variables
33 // NOLINTBEGIN
34 ::ll::TypedStorage<1, 1, bool> needHeader;
35 ::ll::TypedStorage<1, 1, bool> needTrailer;
36 ::ll::TypedStorage<8, 32, ::std::string> header;
37 ::ll::TypedStorage<8, 32, ::std::string> trailer;
38 ::ll::TypedStorage<8, 8, uint64> currentFileByte;
39 ::ll::TypedStorage<8, 8, uint64> totalFileByte;
40 ::ll::TypedStorage<8, 8, uint64> totalStreamSize;
41 // NOLINTEND
42
43 public:
44 // member functions
45 // NOLINTBEGIN
47 // NOLINTEND
48
49 public:
50 // destructor thunk
51 // NOLINTBEGIN
52 MCFOLD void $dtor();
53 // NOLINTEND
54 };
55
56public:
57 // member variables
58 // NOLINTBEGIN
59 ::ll::TypedStorage<8, 72, ::FileInfo> mFile;
60 ::ll::TypedStorage<8, 96, ::FileUploadManager::MultiPartStreamHelper> mMultiPartHelper;
61 ::ll::TypedStorage<4, 4, ::UploadState> mState;
62 ::ll::TypedStorage<4, 4, ::UploadError> mUploadError;
63 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::IFilePicker>> mFilePicker;
64 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::IFileChunkUploader>> mFileUploader;
65 ::ll::TypedStorage<8, 8, ::TaskGroup&> mIOTaskGroup;
66 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::FileArchiver>> mFileArchiver;
67 ::ll::TypedStorage<1, 1, bool> mUploadAllAtOnce;
68 ::ll::TypedStorage<1, 1, bool> mContinueOnReception;
69 ::ll::TypedStorage<1, 1, bool> mUseStream;
70 // NOLINTEND
71
72public:
73 // prevent constructor by default
74 FileUploadManager& operator=(FileUploadManager const&);
75 FileUploadManager(FileUploadManager const&);
76 FileUploadManager();
77
78public:
79 // virtual functions
80 // NOLINTBEGIN
81 virtual ~FileUploadManager();
82
83 virtual float getUploadProgress() const;
84
85 virtual void archiveAndUploadFileToRealmStorage(
86 ::std::string const& uploadId,
87 ::Core::Path const& path,
88 int const slotIndex,
89 ::std::string const& realmsGuid
90 ) = 0;
91
92 virtual void uploadFileToRealmStorage(::std::string const& uploadId, ::Core::Path const& path, int const slotIndex);
93 // NOLINTEND
94
95public:
96 // member functions
97 // NOLINTBEGIN
98 MCAPI FileUploadManager(::TaskGroup& taskGroup, ::std::shared_ptr<::IFileChunkUploader> fileUploader);
99
100#ifdef LL_PLAT_C
101 MCAPI FileUploadManager(
102 ::TaskGroup& taskGroup,
103 ::std::shared_ptr<::IFileChunkUploader> fileUploader,
104 ::Bedrock::NotNullNonOwnerPtr<::FileArchiver> const& fileArchiver
105 );
106#endif
107
108 MCAPI void _generateMultiPartHelper();
109
110 MCAPI void _uploadChunk(::FileChunkInfo const& chunk);
111
112 MCAPI void _uploadStream();
113
114 MCAPI void addCallbackQueue(::std::function<void()> callback);
115
116#ifdef LL_PLAT_C
117 MCAPI bool canCancelUpload() const;
118
119 MCAPI void cancelUpload();
120
121 MCFOLD ::UploadError const& getError() const;
122
123 MCAPI uint64 getFileSize() const;
124
125 MCFOLD ::UploadState getUploadState() const;
126#endif
127
128 MCAPI void setFailed(::UploadError reason);
129
130 MCAPI void setUseStream(bool stream);
131
132 MCAPI void uploadChunk(int chunkID);
133
134 MCAPI void uploadFile(
135 ::std::string const& uploadId,
136 ::Core::Path const& filePath,
137 bool autoStartUpload,
138 ::Json::Value const& uploadOptions
139 );
140 // NOLINTEND
141
142public:
143 // static variables
144 // NOLINTBEGIN
145 MCAPI static ::std::string const& BOUNDARY();
146 // NOLINTEND
147
148public:
149 // constructor thunks
150 // NOLINTBEGIN
151 MCAPI void* $ctor(::TaskGroup& taskGroup, ::std::shared_ptr<::IFileChunkUploader> fileUploader);
152
153#ifdef LL_PLAT_C
154 MCAPI void* $ctor(
155 ::TaskGroup& taskGroup,
156 ::std::shared_ptr<::IFileChunkUploader> fileUploader,
157 ::Bedrock::NotNullNonOwnerPtr<::FileArchiver> const& fileArchiver
158 );
159#endif
160 // NOLINTEND
161
162public:
163 // destructor thunk
164 // NOLINTBEGIN
165 MCAPI void $dtor();
166 // NOLINTEND
167
168public:
169 // virtual function thunks
170 // NOLINTBEGIN
171 MCAPI float $getUploadProgress() const;
172
173 MCAPI void $uploadFileToRealmStorage(::std::string const& uploadId, ::Core::Path const& path, int const slotIndex);
174
175
176 // NOLINTEND
177
178public:
179 // vftables
180 // NOLINTBEGIN
181 MCNAPI static void** $vftable();
182 // NOLINTEND
183};
Definition Path.h:12
Definition FileArchiver.h:36
static MCAPI void ** $vftable()
Definition IFileChunkUploader.h:15
Definition IFilePicker.h:11
Definition Value.h:16
Definition TaskGroup.h:55
Definition FileChunkInfo.h:5
Definition FileUploadManager.h:30