Initial sources

This commit is contained in:
2025-02-28 04:43:17 +03:00
commit d9437c8619
34 changed files with 18207 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
#include <assert.h>
#include "filesystem/stream.h"
#include "filesystem/filemanager.h"
class FileStream : public StreamBase
{
public:
FileStream(File* file);
~FileStream();
size_t Read(void* buffer, size_t size);
size_t Write(void* buffer, size_t size);
void Seek(SeekDir way, long offset);
size_t Tell();
bool Eof();
private:
File* m_file;
};
FileStream::FileStream(File* file)
{
assert(file && "Cannot open file stream with nullptr file handle.");
m_file = file;
}
FileStream::~FileStream()
{
if (m_file)
g_fileManager->CloseFile(m_file);
}
size_t FileStream::Read(void* buffer, size_t size)
{
return m_file->Read(buffer, size);
}
size_t FileStream::Write(void* buffer, size_t size)
{
return m_file->Write(buffer, size);
}
void FileStream::Seek(SeekDir way, long offset)
{
m_file->Seek(way, offset);
}
size_t FileStream::Tell()
{
return m_file->Tell();
}
bool FileStream::Eof()
{
return m_file->Eof();;
}
StreamBase* CreateFileStream(File* file)
{
return new FileStream(file);
}