mirror of
https://github.com/elasota/Aerofoil.git
synced 2025-12-14 20:19:38 +00:00
Add unpacktool
This commit is contained in:
45
unpacktool/DecompressorProxyReader.cpp
Normal file
45
unpacktool/DecompressorProxyReader.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "DecompressorProxyReader.h"
|
||||
|
||||
#include "IDecompressor.h"
|
||||
|
||||
DecompressorProxyReader::DecompressorProxyReader(IDecompressor *decompressor)
|
||||
: m_decompressor(decompressor)
|
||||
, m_currentPosition(0)
|
||||
{
|
||||
}
|
||||
|
||||
size_t DecompressorProxyReader::Read(void *buffer, size_t sz)
|
||||
{
|
||||
if (!m_decompressor->ReadBytes(buffer, sz))
|
||||
return 0;
|
||||
|
||||
m_currentPosition += sz;
|
||||
|
||||
return sz;
|
||||
}
|
||||
|
||||
size_t DecompressorProxyReader::FileSize() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool DecompressorProxyReader::SeekStart(FilePos_t pos)
|
||||
{
|
||||
return pos == m_currentPosition;
|
||||
}
|
||||
|
||||
bool DecompressorProxyReader::SeekCurrent(FilePos_t pos)
|
||||
{
|
||||
return pos == 0;
|
||||
}
|
||||
|
||||
bool DecompressorProxyReader::SeekEnd(FilePos_t pos)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
IFileReader::FilePos_t DecompressorProxyReader::GetPosition() const
|
||||
{
|
||||
return m_currentPosition;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user