Skip to content

Commit 1fa40e6

Browse files
rework all loaders and a few other things to use new file API now
1 parent 2c46108 commit 1fa40e6

File tree

11 files changed

+203
-231
lines changed

11 files changed

+203
-231
lines changed

include/nbl/system/ISystem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class NBL_API2 ISystem : public core::IReferenceCounted
112112
from - a path to the source file or directory. Must exist. Can be both readonly and mutable path.
113113
to - a path to the destination file or directory. Must be mutable path (isPathReadonly(to) must be false).
114114
*/
115-
bool copy(const system::path& from, const system::path& to);
115+
bool copy(const system::path& from, const system::path& to); // TODO: as a future
116116

117117
//
118118
void createFile(

src/nbl/asset/interchange/CImageLoaderOpenEXR.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,11 @@ class nblIStream : public IMF::IStream
7171

7272
virtual bool read(char c[/*n*/], int n) override
7373
{
74-
system::ISystem::future_t<size_t> future;
75-
nblFile->read(future, c, fileOffset, n);
76-
const auto bytesRead = future.get();
77-
fileOffset += bytesRead;
74+
system::IFile::success_t success;
75+
nblFile->read(success, c, fileOffset, n);
76+
fileOffset += success.getBytesProcessed();
7877

79-
return bytesRead==static_cast<size_t>(n);
78+
return bool(success);
8079
}
8180

8281
//--------------------------------------------------------

src/nbl/asset/interchange/CImageLoaderPNG.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ void PNGAPI user_read_data_fcn(png_structp png_pt, png_bytep data, png_size_t le
6161

6262
system::IFile* file=(system::IFile*)png_get_io_ptr(png_pt);
6363

64-
system::ISystem::future_t<size_t> future;
65-
file->read(future, data, file_pos, length);
66-
check = future.get();
64+
system::IFile::success_t success;
65+
file->read(success, data, file_pos, length);
66+
check = success.getBytesProcessed();
6767
file_pos += length;
6868
updateFilePos(png_pt, file_pos);
6969

src/nbl/asset/interchange/CImageWriterOpenEXR.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,9 @@ namespace nbl::asset::impl
6565

6666
virtual void write(const char c[/*n*/], int n) override
6767
{
68-
system::ISystem::future_t<size_t> future;
69-
nblFile->write(future, c, fileOffset, n);
70-
const auto bytesWritten = future.get();
71-
fileOffset += bytesWritten;
68+
system::IFile::success_t success;
69+
nblFile->write(success, c, fileOffset, n);
70+
fileOffset += success.getBytesProcessed();
7271
}
7372

7473
//---------------------------------------------------------

src/nbl/asset/interchange/CImageWriterPNG.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void PNGAPI user_write_data_fcn(png_structp png_ptr, png_bytep data, png_size_t
5757
if (!success)
5858
png_error(png_ptr, "Write Error");
5959

60-
usrData->file_pos += success.getSizeToProcess();
60+
usrData->file_pos += success.getBytesToProcess();
6161
png_set_read_user_chunk_fn(png_ptr, usrData, nullptr);
6262
}
6363
#endif // _NBL_COMPILE_WITH_LIBPNG_

src/nbl/asset/interchange/CPLYMeshFileLoader.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -754,12 +754,11 @@ void CPLYMeshFileLoader::fillBuffer(SContext& _ctx)
754754
else
755755
{
756756
// read data from the file
757-
system::ISystem::future_t<size_t> future;
758-
_ctx.inner.mainFile->read(future, _ctx.EndPointer, _ctx.fileOffset, PLY_INPUT_BUFFER_SIZE - length);
759-
const auto bytesRead = future.get();
757+
system::IFile::success_t success;
758+
_ctx.inner.mainFile->read(success, _ctx.EndPointer, _ctx.fileOffset, PLY_INPUT_BUFFER_SIZE - length);
759+
const size_t bytesRead = success.getBytesProcessed();
760760

761761
_ctx.fileOffset += bytesRead;
762-
763762
// increment the end pointer by the number of bytes read
764763
_ctx.EndPointer += bytesRead;
765764

src/nbl/asset/interchange/CPLYMeshWriter.cpp

Lines changed: 42 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,9 @@ bool CPLYMeshWriter::writeAsset(system::IFile* _file, const SAssetWriteParams& _
212212
header += "end_header\n";
213213

214214
{
215-
system::ISystem::future_t<size_t> future;
216-
file->write(future, header.c_str(), context.fileOffset, header.size());
217-
const auto bytesWritten = future.get();
218-
context.fileOffset += bytesWritten;
215+
system::IFile::success_t success;
216+
file->write(success, header.c_str(), context.fileOffset, header.size());
217+
context.fileOffset += success.getBytesProcessed();
219218
}
220219

221220
if (flags & asset::EWF_BINARY)
@@ -279,17 +278,15 @@ void CPLYMeshWriter::writeBinary(const asset::ICPUMeshBuffer* _mbuf, size_t _vtx
279278
for (size_t i = 0u; i < _fcCount; ++i)
280279
{
281280
{
282-
system::ISystem::future_t<size_t> future;
283-
context.writeContext.outputFile->write(future, &listSize, context.fileOffset, sizeof(listSize));
284-
const auto bytesWritten = future.get();
285-
context.fileOffset += bytesWritten;
281+
system::IFile::success_t success;
282+
context.writeContext.outputFile->write(success, &listSize, context.fileOffset, sizeof(listSize));
283+
context.fileOffset += success.getBytesProcessed();
286284
}
287285

288286
{
289-
system::ISystem::future_t<size_t> future;
290-
context.writeContext.outputFile->write(future, ind, context.fileOffset, listSize * 4);
291-
const auto bytesWritten = future.get();
292-
context.fileOffset += bytesWritten;
287+
system::IFile::success_t success;
288+
context.writeContext.outputFile->write(success, ind, context.fileOffset, listSize * 4);
289+
context.fileOffset += success.getBytesProcessed();
293290
}
294291

295292
ind += listSize;
@@ -301,17 +298,15 @@ void CPLYMeshWriter::writeBinary(const asset::ICPUMeshBuffer* _mbuf, size_t _vtx
301298
for (size_t i = 0u; i < _fcCount; ++i)
302299
{
303300
{
304-
system::ISystem::future_t<size_t> future;
305-
context.writeContext.outputFile->write(future, &listSize, context.fileOffset, sizeof(listSize));
306-
const auto bytesWritten = future.get();
307-
context.fileOffset += bytesWritten;
301+
system::IFile::success_t success;
302+
context.writeContext.outputFile->write(success, &listSize, context.fileOffset, sizeof(listSize));
303+
context.fileOffset += success.getBytesProcessed();
308304
}
309305

310306
{
311-
system::ISystem::future_t<size_t> future;
312-
context.writeContext.outputFile->write(future, ind, context.fileOffset, listSize * 2);
313-
const auto bytesWritten = future.get();
314-
context.fileOffset += bytesWritten;
307+
system::IFile::success_t success;
308+
context.writeContext.outputFile->write(success, ind, context.fileOffset, listSize * 2);
309+
context.fileOffset += success.getBytesProcessed();
315310
}
316311

317312
ind += listSize;
@@ -379,10 +374,9 @@ void CPLYMeshWriter::writeText(const asset::ICPUMeshBuffer* _mbuf, size_t _vtxCo
379374
}
380375

381376
{
382-
system::ISystem::future_t<size_t> future;
383-
context.writeContext.outputFile->write(future, "\n", context.fileOffset, 1);
384-
const auto bytesWritten = future.get();
385-
context.fileOffset += bytesWritten;
377+
system::IFile::success_t success;
378+
context.writeContext.outputFile->write(success, "\n", context.fileOffset, 1);
379+
context.fileOffset += success.getBytesProcessed();
386380
}
387381
}
388382

@@ -408,19 +402,17 @@ void CPLYMeshWriter::writeText(const asset::ICPUMeshBuffer* _mbuf, size_t _vtxCo
408402
for (size_t i = 0u; i < _fcCount; ++i)
409403
{
410404
{
411-
system::ISystem::future_t<size_t> future;
412-
context.writeContext.outputFile->write(future, listSize, context.fileOffset, 2);
413-
const auto bytesWritten = future.get();
414-
context.fileOffset += bytesWritten;
405+
system::IFile::success_t success;
406+
context.writeContext.outputFile->write(success, listSize, context.fileOffset, 2);
407+
context.fileOffset += success.getBytesProcessed();
415408
}
416409

417410
writeVectorAsText(context, ind, 3);
418411

419412
{
420-
system::ISystem::future_t<size_t> future;
421-
context.writeContext.outputFile->write(future, "\n", context.fileOffset, 1);
422-
const auto bytesWritten = future.get();
423-
context.fileOffset += bytesWritten;
413+
system::IFile::success_t success;
414+
context.writeContext.outputFile->write(success, "\n", context.fileOffset, 1);
415+
context.fileOffset += success.getBytesProcessed();
424416
}
425417

426418
ind += 3;
@@ -432,19 +424,17 @@ void CPLYMeshWriter::writeText(const asset::ICPUMeshBuffer* _mbuf, size_t _vtxCo
432424
for (size_t i = 0u; i < _fcCount; ++i)
433425
{
434426
{
435-
system::ISystem::future_t<size_t> future;
436-
context.writeContext.outputFile->write(future, listSize, context.fileOffset, 2);
437-
const auto bytesWritten = future.get();
438-
context.fileOffset += bytesWritten;
427+
system::IFile::success_t success;
428+
context.writeContext.outputFile->write(success, listSize, context.fileOffset, 2);
429+
context.fileOffset += success.getBytesProcessed();
439430
}
440431

441432
writeVectorAsText(context, ind, 3);
442433

443434
{
444-
system::ISystem::future_t<size_t> future;
445-
context.writeContext.outputFile->write(future, "\n", context.fileOffset, 1);
446-
const auto bytesWritten = future.get();
447-
context.fileOffset += bytesWritten;
435+
system::IFile::success_t success;
436+
context.writeContext.outputFile->write(success, "\n", context.fileOffset, 1);
437+
context.fileOffset += success.getBytesProcessed();
448438
}
449439

450440
ind += 3;
@@ -475,10 +465,9 @@ void CPLYMeshWriter::writeAttribBinary(SContext& context, asset::ICPUMeshBuffer*
475465
a[k] = ui[k];
476466

477467
{
478-
system::ISystem::future_t<size_t> future;
479-
context.writeContext.outputFile->write(future, a, context.fileOffset, _cpa);
480-
const auto bytesWritten = future.get();
481-
context.fileOffset += bytesWritten;
468+
system::IFile::success_t success;
469+
context.writeContext.outputFile->write(success, a, context.fileOffset, _cpa);
470+
context.fileOffset += success.getBytesProcessed();
482471
}
483472
}
484473
else if (bytesPerCh == 2u)
@@ -488,19 +477,17 @@ void CPLYMeshWriter::writeAttribBinary(SContext& context, asset::ICPUMeshBuffer*
488477
a[k] = ui[k];
489478

490479
{
491-
system::ISystem::future_t<size_t> future;
492-
context.writeContext.outputFile->write(future, a, context.fileOffset, 2 * _cpa);
493-
const auto bytesWritten = future.get();
494-
context.fileOffset += bytesWritten;
480+
system::IFile::success_t success;
481+
context.writeContext.outputFile->write(success, a, context.fileOffset, 2 * _cpa);
482+
context.fileOffset += success.getBytesProcessed();
495483
}
496484
}
497485
else if (bytesPerCh == 4u)
498486
{
499487
{
500-
system::ISystem::future_t<size_t> future;
501-
context.writeContext.outputFile->write(future, ui, context.fileOffset, 4 * _cpa);
502-
const auto bytesWritten = future.get();
503-
context.fileOffset += bytesWritten;
488+
system::IFile::success_t success;
489+
context.writeContext.outputFile->write(success, ui, context.fileOffset, 4 * _cpa);
490+
context.fileOffset += success.getBytesProcessed();
504491
}
505492
}
506493
}
@@ -511,10 +498,9 @@ void CPLYMeshWriter::writeAttribBinary(SContext& context, asset::ICPUMeshBuffer*
511498
f[0] = -f[0];
512499

513500
{
514-
system::ISystem::future_t<size_t> future;
515-
context.writeContext.outputFile->write(future, f.pointer, context.fileOffset, 4 * _cpa);
516-
const auto bytesWritten = future.get();
517-
context.fileOffset += bytesWritten;
501+
system::IFile::success_t success;
502+
context.writeContext.outputFile->write(success, f.pointer, context.fileOffset, 4 * _cpa);
503+
context.fileOffset += success.getBytesProcessed();
518504
}
519505
}
520506
}

src/nbl/asset/interchange/CSTLMeshFileLoader.cpp

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -354,27 +354,21 @@ void CSTLMeshFileLoader::getNextVector(SContext* context, core::vectorSIMDf& vec
354354
if (binary)
355355
{
356356
{
357-
system::ISystem::future_t<size_t> future;
358-
context->inner.mainFile->read(future, &vec.X, context->fileOffset, 4);
359-
360-
const auto bytesRead = future.get();
361-
context->fileOffset += bytesRead;
357+
system::IFile::success_t success;
358+
context->inner.mainFile->read(success, &vec.X, context->fileOffset, 4);
359+
context->fileOffset += success.getBytesProcessed();
362360
}
363361

364362
{
365-
system::ISystem::future_t<size_t> future;
366-
context->inner.mainFile->read(future, &vec.Y, context->fileOffset, 4);
367-
368-
const auto bytesRead = future.get();
369-
context->fileOffset += bytesRead;
363+
system::IFile::success_t success;
364+
context->inner.mainFile->read(success, &vec.Y, context->fileOffset, 4);
365+
context->fileOffset += success.getBytesProcessed();
370366
}
371367

372368
{
373-
system::ISystem::future_t<size_t> future;
374-
context->inner.mainFile->read(future, &vec.Z, context->fileOffset, 4);
375-
376-
const auto bytesRead = future.get();
377-
context->fileOffset += bytesRead;
369+
system::IFile::success_t success;
370+
context->inner.mainFile->read(success, &vec.Z, context->fileOffset, 4);
371+
context->fileOffset += success.getBytesProcessed();
378372
}
379373
}
380374
else
@@ -401,10 +395,9 @@ const std::string& CSTLMeshFileLoader::getNextToken(SContext* context, std::stri
401395

402396
while (context->fileOffset != context->inner.mainFile->getSize())
403397
{
404-
system::ISystem::future_t<size_t> future;
405-
context->inner.mainFile->read(future, &c, context->fileOffset, sizeof(c));
406-
const auto bytesRead = future.get();
407-
context->fileOffset += bytesRead;
398+
system::IFile::success_t success;
399+
context->inner.mainFile->read(success, &c, context->fileOffset, sizeof(c));
400+
context->fileOffset += success.getBytesProcessed();
408401

409402
// found it, so leave
410403
if (core::isspace(c))
@@ -420,15 +413,14 @@ void CSTLMeshFileLoader::goNextWord(SContext* context) const
420413
uint8_t c;
421414
while (context->fileOffset != context->inner.mainFile->getSize()) // TODO: check it
422415
{
423-
system::ISystem::future_t<size_t> future;
424-
context->inner.mainFile->read(future, &c, context->fileOffset, sizeof(c));
425-
const auto bytesRead = future.get();
426-
context->fileOffset += bytesRead;
416+
system::IFile::success_t success;
417+
context->inner.mainFile->read(success, &c, context->fileOffset, sizeof(c));
418+
context->fileOffset += success.getBytesProcessed();
427419

428420
// found it, so leave
429421
if (!core::isspace(c))
430422
{
431-
context->fileOffset -= bytesRead;
423+
context->fileOffset -= success.getBytesProcessed();
432424
break;
433425
}
434426
}
@@ -441,12 +433,9 @@ void CSTLMeshFileLoader::goNextLine(SContext* context) const
441433
// look for newline characters
442434
while (context->fileOffset != context->inner.mainFile->getSize()) // TODO: check it
443435
{
444-
system::ISystem::future_t<size_t> future;
445-
context->inner.mainFile->read(future, &c, context->fileOffset, sizeof(c));
446-
{
447-
const auto bytesRead = future.get();
448-
context->fileOffset += bytesRead;
449-
}
436+
system::IFile::success_t success;
437+
context->inner.mainFile->read(success, &c, context->fileOffset, sizeof(c));
438+
context->fileOffset += success.getBytesProcessed();
450439

451440
// found it, so leave
452441
if (c == '\n' || c == '\r')

0 commit comments

Comments
 (0)