Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
IFileChunkUploader.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/util/UploadError.h"
7
8// auto generated forward declare list
9// clang-format off
10struct FileChunkInfo;
11struct FileInfo;
12namespace Json { class Value; }
13// clang-format on
14
16public:
17 // IFileChunkUploader inner types define
18 enum class UploadStatus : int {
19 Initialized = 0,
20 ArchivingStarted = 1,
21 ArchivingFailed = 2,
22 ArchivingSucceeded = 3,
23 UploadFailed = 4,
24 ValidationStarted = 5,
25 ValidationProgress = 6,
26 ValidationFailed = 7,
27 ValidationCancelled = 8,
28 ValidationSucceeded = 9,
29 UnknownError = 10,
30 };
31
32 enum class UploadStreamResult : int {
33 Success = 0,
34 WaitingForServer = 1,
35 BadInitialization = 2,
36 Failure = 3,
37 FailureForbidden = 4,
38 FailureWorldName = 5,
39 FailureSingleFileUpload = 6,
40 FailureMultiUpload = 7,
41 FailureBlockList = 8,
42 FailureUploadComplete = 9,
43 FailureRefreshSession = 10,
44 FailureProcessing = 11,
45 InvalidResponseBody = 12,
46 Cancelled = 13,
47 InProgress = 14,
48 None = 15,
49 };
50
51public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual ~IFileChunkUploader() = default;
55
56 virtual void initFileUploader(
57 ::std::string const& uploadId,
58 ::FileInfo const& file,
59 int chunkSize,
60 ::Json::Value const& uploadOptions,
61 ::std::function<void(bool)> callback
62 ) = 0;
63
64 virtual void getServerMissingChunks(
65 ::FileInfo const& file,
66 ::std::function<void(::std::vector<::FileChunkInfo>)> callback
67 ) const;
68
69 virtual void confirmChunkReceived(::FileInfo const& file, ::FileChunkInfo const& chunk);
70
71 virtual void uploadChunk(
72 ::FileInfo const& file,
73 ::FileChunkInfo const& chunk,
74 ::std::vector<uchar> data,
75 ::std::function<void(bool)> onCompleteCallback
76 );
77
78 virtual void uploadStream(
79 ::FileInfo const& file,
80 uint64 streamSize,
81 ::std::string const& boundary,
82 ::std::function<void(::IFileChunkUploader::UploadStreamResult)> onCompleteCallback
83 );
84
85 virtual bool canCancelUpload(::FileInfo const& file) const = 0;
86
87 virtual void cancelUpload(::FileInfo const& file) = 0;
88
89 virtual ::UploadError getInitErrorCode() const = 0;
90
91 virtual float getUploadProgress(::FileInfo const& file) const = 0;
92
93 virtual ::FileChunkInfo getChunkInfo(::FileInfo const& file, int chunkID) const;
94
95 virtual bool useFileSizeLimit() const;
96 // NOLINTEND
97
98public:
99 // virtual function thunks
100 // NOLINTBEGIN
101 MCNAPI void $uploadStream(
102 ::FileInfo const& file,
103 uint64 streamSize,
104 ::std::string const& boundary,
105 ::std::function<void(::IFileChunkUploader::UploadStreamResult)> onCompleteCallback
106 );
107
108 MCNAPI bool $useFileSizeLimit() const;
109
110#ifdef LL_PLAT_C
111 MCNAPI void $getServerMissingChunks(
112 ::FileInfo const& file,
113 ::std::function<void(::std::vector<::FileChunkInfo>)> callback
114 ) const;
115
116 MCNAPI void $confirmChunkReceived(::FileInfo const& file, ::FileChunkInfo const& chunk);
117
118 MCNAPI void $uploadChunk(
119 ::FileInfo const& file,
120 ::FileChunkInfo const& chunk,
121 ::std::vector<uchar> data,
122 ::std::function<void(bool)> onCompleteCallback
123 );
124
125 MCNAPI ::FileChunkInfo $getChunkInfo(::FileInfo const& file, int chunkID) const;
126#endif
127
128
129 // NOLINTEND
130};
Definition IFileChunkUploader.h:15
MCAPI void $uploadStream(::FileInfo const &file, uint64 streamSize, ::std::string const &boundary, ::std::function< void(::IFileChunkUploader::UploadStreamResult)> onCompleteCallback)
MCAPI bool $useFileSizeLimit() const
Definition Value.h:16
Definition FileChunkInfo.h:5
Definition FileInfo.h:10