Initial sources
This commit is contained in:
61
engine/filesystem/stream.cpp
Normal file
61
engine/filesystem/stream.cpp
Normal 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);
|
||||
}
|
||||
Reference in New Issue
Block a user