mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-04-22 20:40:46 +00:00
DiscIO: Add IsCached virtual function to BlobReader.
This commit is contained in:
parent
aaa7094442
commit
3681cade41
@ -97,6 +97,9 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
// Returns true only for CachedBlobReader.
|
||||
virtual bool IsCached() const { return false; }
|
||||
|
||||
protected:
|
||||
BlobReader() {}
|
||||
};
|
||||
|
||||
@ -219,6 +219,8 @@ public:
|
||||
return m_cache_filler->Read(offset, size, out_ptr) || m_reader->Read(offset, size, out_ptr);
|
||||
}
|
||||
|
||||
bool IsCached() const override { return true; }
|
||||
|
||||
private:
|
||||
// A shared object does the cache filling for sensible CopyReader behavior.
|
||||
const std::shared_ptr<CacheFiller> m_cache_filler;
|
||||
@ -228,11 +230,17 @@ private:
|
||||
|
||||
std::unique_ptr<BlobReader> CreateCachedBlobReader(std::unique_ptr<BlobReader> reader)
|
||||
{
|
||||
if (reader->IsCached()) // This is already CachedBlobReader.
|
||||
return reader;
|
||||
|
||||
return std::make_unique<CachedBlobReader>(std::move(reader), false);
|
||||
}
|
||||
|
||||
std::unique_ptr<BlobReader> CreateScrubbingCachedBlobReader(std::unique_ptr<BlobReader> reader)
|
||||
{
|
||||
if (reader->IsCached()) // This reader is already a CachedBlobReader.
|
||||
return reader;
|
||||
|
||||
return std::make_unique<CachedBlobReader>(std::move(reader), true);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user