2013-01-01 23:07:33 +00:00
|
|
|
#include "lowlevelfile.hpp"
|
|
|
|
|
|
|
|
#include <stdexcept>
|
|
|
|
#include <sstream>
|
|
|
|
#include <cassert>
|
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
namespace File = Platform::File;
|
2020-11-13 06:36:26 +00:00
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
LowLevelFile::~LowLevelFile()
|
2013-01-01 23:07:33 +00:00
|
|
|
{
|
2022-07-16 17:37:19 +00:00
|
|
|
if (mHandle != File::Handle::Invalid)
|
|
|
|
File::close(mHandle);
|
2013-01-01 23:07:33 +00:00
|
|
|
}
|
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
void LowLevelFile::open(char const* filename)
|
2013-01-01 23:07:33 +00:00
|
|
|
{
|
2022-07-16 17:37:19 +00:00
|
|
|
mHandle = File::open(filename);
|
2013-01-01 23:07:33 +00:00
|
|
|
}
|
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
void LowLevelFile::close()
|
2013-01-01 23:07:33 +00:00
|
|
|
{
|
2022-07-16 17:37:19 +00:00
|
|
|
if (mHandle != File::Handle::Invalid)
|
|
|
|
File::close(mHandle);
|
|
|
|
mHandle = File::Handle::Invalid;
|
2013-01-01 23:07:33 +00:00
|
|
|
}
|
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
size_t LowLevelFile::size()
|
2013-01-01 23:07:33 +00:00
|
|
|
{
|
2022-07-16 17:37:19 +00:00
|
|
|
assert(mHandle != File::Handle::Invalid);
|
2013-01-01 23:07:33 +00:00
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
return File::size(mHandle);
|
2013-01-01 23:07:33 +00:00
|
|
|
}
|
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
void LowLevelFile::seek(size_t position)
|
2013-01-01 23:07:33 +00:00
|
|
|
{
|
2022-07-16 17:37:19 +00:00
|
|
|
assert(mHandle != File::Handle::Invalid);
|
2013-01-01 23:07:33 +00:00
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
return File::seek(mHandle, position);
|
2013-01-01 23:07:33 +00:00
|
|
|
}
|
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
size_t LowLevelFile::tell()
|
2013-01-01 23:07:33 +00:00
|
|
|
{
|
2022-07-16 17:37:19 +00:00
|
|
|
assert(mHandle != File::Handle::Invalid);
|
2013-01-01 23:07:33 +00:00
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
return File::tell(mHandle);
|
2013-01-01 23:07:33 +00:00
|
|
|
}
|
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
size_t LowLevelFile::read(void* data, size_t size)
|
2013-01-01 23:07:33 +00:00
|
|
|
{
|
2022-07-16 17:37:19 +00:00
|
|
|
assert(mHandle != File::Handle::Invalid);
|
2013-01-01 23:07:33 +00:00
|
|
|
|
2022-07-16 17:37:19 +00:00
|
|
|
return File::read(mHandle, data, size);
|
2013-01-01 23:07:33 +00:00
|
|
|
}
|