Files
XCEngine/engine/include/XCEngine/Resources/FileArchive.h

33 lines
937 B
C++

#pragma once
#include "ResourceFileSystem.h"
#include <cstdio>
namespace XCEngine {
namespace Resources {
class FileArchive : public IArchive {
public:
FileArchive();
virtual ~FileArchive() override;
bool Open(const Containers::String& path) override;
void Close() override;
bool Read(const Containers::String& fileName, void* buffer, size_t size, size_t offset) const override;
size_t GetSize(const Containers::String& fileName) const override;
bool Exists(const Containers::String& fileName) const override;
void Enumerate(const Containers::String& pattern, Containers::Array<Containers::String>& outFiles) const override;
bool IsValid() const override { return m_isValid; }
const Containers::String& GetPath() const { return m_archivePath; }
private:
Containers::String m_archivePath;
bool m_isValid = false;
};
} // namespace Resources
} // namespace XCEngine