22class FileUploadManager :
public ::std::enable_shared_from_this<::FileUploadManager> {
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;
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;
74 FileUploadManager& operator=(FileUploadManager
const&);
75 FileUploadManager(FileUploadManager
const&);
81 virtual ~FileUploadManager();
83 virtual float getUploadProgress()
const;
85 virtual void archiveAndUploadFileToRealmStorage(
86 ::std::string
const& uploadId,
89 ::std::string
const& realmsGuid
92 virtual void uploadFileToRealmStorage(::std::string
const& uploadId,
::Core::Path const& path,
int const slotIndex);
98 MCAPI FileUploadManager(
::TaskGroup& taskGroup, ::std::shared_ptr<::IFileChunkUploader> fileUploader);
101 MCAPI FileUploadManager(
103 ::std::shared_ptr<::IFileChunkUploader> fileUploader,
104 ::Bedrock::NotNullNonOwnerPtr<::FileArchiver>
const& fileArchiver
108 MCAPI
void _generateMultiPartHelper();
112 MCAPI
void _uploadStream();
114 MCAPI
void addCallbackQueue(::std::function<
void()> callback);
117 MCAPI
bool canCancelUpload()
const;
119 MCAPI
void cancelUpload();
121 MCFOLD ::UploadError
const& getError()
const;
123 MCAPI uint64 getFileSize()
const;
125 MCFOLD ::UploadState getUploadState()
const;
128 MCAPI
void setFailed(::UploadError reason);
130 MCAPI
void setUseStream(
bool stream);
132 MCAPI
void uploadChunk(
int chunkID);
134 MCAPI
void uploadFile(
135 ::std::string
const& uploadId,
137 bool autoStartUpload,
145 MCAPI static ::std::string
const& BOUNDARY();
151 MCAPI
void* $ctor(
::TaskGroup& taskGroup, ::std::shared_ptr<::IFileChunkUploader> fileUploader);
156 ::std::shared_ptr<::IFileChunkUploader> fileUploader,
157 ::Bedrock::NotNullNonOwnerPtr<::FileArchiver>
const& fileArchiver
171 MCAPI
float $getUploadProgress()
const;
173 MCAPI
void $uploadFileToRealmStorage(::std::string
const& uploadId,
::Core::Path const& path,
int const slotIndex);