MCPcopy Create free account
hub / github.com/GrapheneCt/NetStream / DownloadFile

Method DownloadFile

NetStream/source/np_utils.cpp:159–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

157}
158
159int32_t nputils::TUS::DownloadFile(uint32_t slot, const char *path)
160{
161 int32_t ret = SCE_OK;
162 int32_t request = 0;
163 int32_t recvedSize = 0;
164 SceNpTusDataStatus dataStatus;
165
166 ret = sceNpTusCreateRequest(m_ctx);
167 if (ret < 0)
168 {
169 return ret;
170 }
171 request = ret;
172
173 common::SharedPtr<LocalFile> file = LocalFile::Open(path, File::WRONLY | File::CREAT, File::RWU, &ret);
174 if (ret < 0)
175 {
176 sceNpTusDeleteRequest(request);
177 return ret;
178 }
179
180 do
181 {
182 ret = sceNpTusGetData(request, &m_npid, slot, &dataStatus, sizeof(SceNpTusDataStatus), s_opbuf, sizeof(s_opbuf), NULL);
183 if (ret < 0)
184 {
185 recvedSize = ret;
186 break;
187 }
188 if (dataStatus.hasData == 0)
189 {
190 recvedSize = -1;
191 break;
192 }
193
194 file->Write(s_opbuf, ret);
195 recvedSize += ret;
196
197 } while (recvedSize < dataStatus.dataSize);
198
199 file->Close();
200
201 sceNpTusDeleteRequest(request);
202
203 return recvedSize;
204}
205
206int32_t nputils::TUS::UploadString(uint32_t slot, const string& data)
207{

Callers 1

UpdateFromTUSMethod · 0.80

Calls 1

CloseMethod · 0.45

Tested by

no test coverage detected