33 lines
937 B
C++
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
|