Files
unease/engine/filesystem/stream.cpp
2025-02-28 04:43:17 +03:00

62 lines
1011 B
C++

#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);
}