MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / OpenCacheForWriting

Method OpenCacheForWriting

pcsx2/GameList.cpp:579–619  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

577}
578
579bool GameList::OpenCacheForWriting()
580{
581 const std::string cache_filename(GetCacheFilename());
582 if (cache_filename.empty())
583 return false;
584
585 pxAssert(!s_cache_write_stream);
586 s_cache_write_stream = FileSystem::OpenCFile(cache_filename.c_str(), "r+b");
587 if (s_cache_write_stream)
588 {
589 // check the header
590 u32 signature, version;
591 if (ReadU32(s_cache_write_stream, &signature) && signature == GAME_LIST_CACHE_SIGNATURE &&
592 ReadU32(s_cache_write_stream, &version) && version == GAME_LIST_CACHE_VERSION &&
593 FileSystem::FSeek64(s_cache_write_stream, 0, SEEK_END) == 0)
594 {
595 return true;
596 }
597
598 std::fclose(s_cache_write_stream);
599 }
600
601 Console.WriteLn("Creating new game list cache file: '%s'", cache_filename.c_str());
602
603 s_cache_write_stream = FileSystem::OpenCFile(cache_filename.c_str(), "w+b");
604 if (!s_cache_write_stream)
605 return false;
606
607
608 // new cache file, write header
609 if (!WriteU32(s_cache_write_stream, GAME_LIST_CACHE_SIGNATURE) || !WriteU32(s_cache_write_stream, GAME_LIST_CACHE_VERSION))
610 {
611 Console.Error("Failed to write game list cache header");
612 std::fclose(s_cache_write_stream);
613 s_cache_write_stream = nullptr;
614 FileSystem::DeleteFilePath(cache_filename.c_str());
615 return false;
616 }
617
618 return true;
619}
620
621bool GameList::WriteEntryToCache(const Entry* entry)
622{

Callers

nothing calls this directly

Calls 7

GetCacheFilenameFunction · 0.85
ReadU32Function · 0.85
WriteU32Function · 0.85
emptyMethod · 0.45
c_strMethod · 0.45
WriteLnMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected