MemoryMappedFileStreamFallback.cpp trio/streams/MemoryMappedFileStreamFallback.h trio/utils/ScopedEnumEx.h pma/ScopedPtr.h cstddef cstdint trio //CopyrightEpicGames,Inc.AllRightsReserved. //*INDENT-OFF* #if!defined(TRIO_WINDOWS_FILE_MAPPING_AVAILABLE)&&!defined(TRIO_MMAP_AVAILABLE) #include"trio/streams/MemoryMappedFileStreamFallback.h" #include"trio/utils/ScopedEnumEx.h" #include<pma/ScopedPtr.h> #include<cstddef> #include<cstdint> namespacetrio{ MemoryMappedFileStreamFallback::MemoryMappedFileStreamFallback(constchar*path_,AccessModeaccessMode_, MemoryResource*memRes_): stream{pma::makeScoped<FileStream>(path_,accessMode_,OpenMode::Binary,memRes_)}, memRes{memRes_}{ } MemoryMappedFileStreamFallback::~MemoryMappedFileStreamFallback(){ MemoryMappedFileStreamFallback::close(); } voidMemoryMappedFileStreamFallback::open(){ stream->open(); } voidMemoryMappedFileStreamFallback::close(){ stream->close(); } std::uint64_tMemoryMappedFileStreamFallback::tell(){ returnstream->tell(); } voidMemoryMappedFileStreamFallback::seek(std::uint64_tposition){ stream->seek(position); } std::size_tMemoryMappedFileStreamFallback::read(char*destination,std::size_tsize){ returnstream->read(destination,size); } std::size_tMemoryMappedFileStreamFallback::read(Writable*destination,std::size_tsize){ returnstream->read(destination,size); } std::size_tMemoryMappedFileStreamFallback::write(constchar*source,std::size_tsize){ returnstream->write(source,size); } std::size_tMemoryMappedFileStreamFallback::write(Readable*source,std::size_tsize){ returnstream->write(source,size); } voidMemoryMappedFileStreamFallback::flush(){ //Unbuffered,sonoop } voidMemoryMappedFileStreamFallback::resize(std::uint64_t/*unused*/){ //No-op,asit'swrittentodiskdirectly } std::uint64_tMemoryMappedFileStreamFallback::size(){ returnstream->size(); } MemoryResource*MemoryMappedFileStreamFallback::getMemoryResource(){ returnmemRes; } }//namespacetrio #endif //*INDENT-OFF*