mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-10 08:09:26 +01:00
Merge pull request #12387 from lioncash/cache
GameFileCache: Pass std::function by reference rather than by value
This commit is contained in:
commit
dd0ac7d53c
@ -43,7 +43,7 @@ GameFileCache::GameFileCache() : m_path(File::GetUserPath(D_CACHE_IDX) + "gameli
|
||||
{
|
||||
}
|
||||
|
||||
void GameFileCache::ForEach(std::function<void(const std::shared_ptr<const GameFile>&)> f) const
|
||||
void GameFileCache::ForEach(const ForEachFn& f) const
|
||||
{
|
||||
for (const std::shared_ptr<GameFile>& item : m_cached_files)
|
||||
f(item);
|
||||
@ -83,11 +83,10 @@ std::shared_ptr<const GameFile> GameFileCache::AddOrGet(const std::string& path,
|
||||
return result;
|
||||
}
|
||||
|
||||
bool GameFileCache::Update(
|
||||
const std::vector<std::string>& all_game_paths,
|
||||
std::function<void(const std::shared_ptr<const GameFile>&)> game_added_to_cache,
|
||||
std::function<void(const std::string&)> game_removed_from_cache,
|
||||
const std::atomic_bool& processing_halted)
|
||||
bool GameFileCache::Update(std::span<const std::string> all_game_paths,
|
||||
const GameAddedToCacheFn& game_added_to_cache,
|
||||
const GameRemovedFromCacheFn& game_removed_from_cache,
|
||||
const std::atomic_bool& processing_halted)
|
||||
{
|
||||
// Copy game paths into a set, except ones that match DiscIO::ShouldHideFromGameList.
|
||||
// TODO: Prevent DoFileSearch from looking inside /files/ directories of DirectoryBlobs at all?
|
||||
@ -151,9 +150,8 @@ bool GameFileCache::Update(
|
||||
return cache_changed;
|
||||
}
|
||||
|
||||
bool GameFileCache::UpdateAdditionalMetadata(
|
||||
std::function<void(const std::shared_ptr<const GameFile>&)> game_updated,
|
||||
const std::atomic_bool& processing_halted)
|
||||
bool GameFileCache::UpdateAdditionalMetadata(const GameUpdatedFn& game_updated,
|
||||
const std::atomic_bool& processing_halted)
|
||||
{
|
||||
bool cache_changed = false;
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <cstddef>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <span>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@ -30,9 +31,14 @@ public:
|
||||
Yes = 1,
|
||||
};
|
||||
|
||||
using ForEachFn = std::function<void(const std::shared_ptr<const GameFile>&)>;
|
||||
using GameAddedToCacheFn = std::function<void(const std::shared_ptr<const GameFile>&)>;
|
||||
using GameRemovedFromCacheFn = std::function<void(const std::string&)>;
|
||||
using GameUpdatedFn = std::function<void(const std::shared_ptr<const GameFile>&)>;
|
||||
|
||||
GameFileCache();
|
||||
|
||||
void ForEach(std::function<void(const std::shared_ptr<const GameFile>&)> f) const;
|
||||
void ForEach(const ForEachFn& f) const;
|
||||
|
||||
size_t GetSize() const;
|
||||
void Clear(DeleteOnDisk delete_on_disk);
|
||||
@ -41,13 +47,12 @@ public:
|
||||
std::shared_ptr<const GameFile> AddOrGet(const std::string& path, bool* cache_changed);
|
||||
|
||||
// These functions return true if the call modified the cache.
|
||||
bool Update(const std::vector<std::string>& all_game_paths,
|
||||
std::function<void(const std::shared_ptr<const GameFile>&)> game_added_to_cache = {},
|
||||
std::function<void(const std::string&)> game_removed_from_cache = {},
|
||||
bool Update(std::span<const std::string> all_game_paths,
|
||||
const GameAddedToCacheFn& game_added_to_cache = {},
|
||||
const GameRemovedFromCacheFn& game_removed_from_cache = {},
|
||||
const std::atomic_bool& processing_halted = false);
|
||||
bool UpdateAdditionalMetadata(
|
||||
std::function<void(const std::shared_ptr<const GameFile>&)> game_updated = {},
|
||||
const std::atomic_bool& processing_halted = false);
|
||||
bool UpdateAdditionalMetadata(const GameUpdatedFn& game_updated = {},
|
||||
const std::atomic_bool& processing_halted = false);
|
||||
|
||||
bool Load();
|
||||
bool Save();
|
||||
|
Loading…
x
Reference in New Issue
Block a user