MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / CVirtualFileReader

Method CVirtualFileReader

ogsr_engine/xrCore/FS.cpp:418–442  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

416//---------------------------------------------------
417
418CVirtualFileReader::CVirtualFileReader(const char* cFileName)
419{
420 Pos = 0;
421
422 // Open the file
423 hSrcFile = CreateFile(cFileName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
424 R_ASSERT3(hSrcFile != INVALID_HANDLE_VALUE, cFileName, Debug.error2string(GetLastError()));
425
426 LARGE_INTEGER sz;
427 GetFileSizeEx(hSrcFile, &sz);
428 Size = sz.QuadPart;
429
430 if (Size == 0)
431 Msg("~~[%s] Found empty file: [%s]", __FUNCTION__, cFileName);
432
433 hSrcMap = CreateFileMapping(hSrcFile, 0, PAGE_READONLY, 0, 0, 0);
434 R_ASSERT3(hSrcMap != INVALID_HANDLE_VALUE, cFileName, Debug.error2string(GetLastError()));
435
436 data = (char*)MapViewOfFile(hSrcMap, FILE_MAP_READ, 0, 0, 0);
437 R_ASSERT3(!Size || data, cFileName, Debug.error2string(GetLastError()));
438
439#ifdef DEBUG
440 register_file_mapping(data, Size, cFileName);
441#endif // DEBUG
442}
443
444CVirtualFileReader::~CVirtualFileReader()
445{

Callers

nothing calls this directly

Calls 3

MsgFunction · 0.85
register_file_mappingFunction · 0.85
error2stringMethod · 0.80

Tested by

no test coverage detected