Implement installer with support for ISO, STFS and SVOD. Also implement XEX Patcher. (#5)

This commit is contained in:
Darío
2024-11-29 17:47:30 -03:00
committed by GitHub
parent d36aa26bac
commit 3215e47279
40 changed files with 13171 additions and 11 deletions

View File

@@ -0,0 +1,24 @@
#pragma once
#include <algorithm>
#include <memory>
struct VirtualFileSystem {
virtual ~VirtualFileSystem() { };
virtual bool load(const std::string &path, uint8_t *fileData, size_t fileDataMaxByteCount) const = 0;
virtual size_t getSize(const std::string &path) const = 0;
virtual bool exists(const std::string &path) const = 0;
// Concrete implementation shortcut.
bool load(const std::string &path, std::vector<uint8_t> &fileData)
{
size_t fileDataSize = getSize(path);
if (fileDataSize == 0)
{
return false;
}
fileData.resize(fileDataSize);
return load(path, fileData.data(), fileDataSize);
}
};