initial commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#pragma once
|
||||
|
||||
#include "libNPK.h"
|
||||
#include "libNPK_NPKFile.h"
|
||||
|
||||
namespace NPK
|
||||
{
|
||||
|
||||
class CFileStream : public IFileStream
|
||||
{
|
||||
public:
|
||||
virtual const char* name(void) const {
|
||||
return m_fileName.c_str();
|
||||
}
|
||||
|
||||
virtual uint32_t size(void) const {
|
||||
return m_fileSize;
|
||||
}
|
||||
|
||||
virtual uint32_t read(void* buffer, uint32_t size);
|
||||
|
||||
virtual bool seek(uint32_t offset);
|
||||
|
||||
virtual uint32_t tell(void) const {
|
||||
return m_currentOffset;
|
||||
}
|
||||
|
||||
virtual uint32_t crc32(void);
|
||||
|
||||
virtual bool isEOF(void) const {
|
||||
return m_currentOffset >= m_fileSize;
|
||||
}
|
||||
|
||||
protected:
|
||||
//Pack file
|
||||
CNPKFile* m_pNPKFile;
|
||||
// windows file handle
|
||||
HANDLE m_hFileandle;
|
||||
std::string m_fileName;
|
||||
//offset of the file in the pak file
|
||||
uint32_t m_fileOffset = 0;
|
||||
//size of the file
|
||||
uint32_t m_fileSize = 0;
|
||||
//current read offset in the file
|
||||
uint32_t m_currentOffset = 0;
|
||||
//CRC32 checksum of the file
|
||||
uint32_t m_crc32 = 0;
|
||||
//Flag to indicate if CRC32 has been calculated
|
||||
bool m_crc32Calculated = false;
|
||||
|
||||
private:
|
||||
CFileStream(CNPKFile* pNPKFile, HANDLE hFile, const INPKFile::FileNode& fileNode);
|
||||
virtual ~CFileStream();
|
||||
|
||||
friend IFileStream* CNPKFile::openFileStream(const char* szFileName);
|
||||
friend void CNPKFile::closeFileStream(IFileStream* fileStream);
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user