initial commit
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
#pragma once
|
||||
|
||||
namespace NPK
|
||||
{
|
||||
|
||||
//------------------------------------
|
||||
//pre-dfine
|
||||
//------------------------------------
|
||||
class INPKFile;
|
||||
class IFileStream;
|
||||
|
||||
//------------------------------------
|
||||
// NPK file error codes
|
||||
//------------------------------------
|
||||
enum ErrorCode
|
||||
{
|
||||
NPK_ERR_SUCCESS = 0,
|
||||
|
||||
NPK_ERR_FILE_NOT_FOUND,
|
||||
NPK_ERR_INVALID_FILE_FORMAT,
|
||||
NPK_ERR_INVALID_FILE_HASH,
|
||||
NPK_ERR_FILE_ACCESS,
|
||||
NPK_ERR_FILE_READ,
|
||||
NPK_ERR_FILE_WRITE,
|
||||
NPK_ERR_PARAM,
|
||||
NPK_ERR_INVALID_STATE,
|
||||
|
||||
//Other errors
|
||||
NPK_ERR_UNKNOWN
|
||||
};
|
||||
|
||||
//------------------------------------
|
||||
//API for NPK file
|
||||
//------------------------------------
|
||||
|
||||
// Create a NPK file interface
|
||||
INPKFile* createNPKFile();
|
||||
|
||||
// destroy an NPK interface
|
||||
void closeNPKFile(INPKFile* npkFile);
|
||||
|
||||
// Get the last error code
|
||||
ErrorCode getLastErrorCode();
|
||||
|
||||
// Get the last error message
|
||||
const char* getLastErrorMessage();
|
||||
|
||||
//------------------------------------
|
||||
// define the NPK file interface
|
||||
//------------------------------------
|
||||
class INPKFile
|
||||
{
|
||||
public:
|
||||
struct FileNode
|
||||
{
|
||||
std::string fileName;
|
||||
uint32_t fileOffset = 0;
|
||||
uint32_t fileSize = 0;
|
||||
};
|
||||
public:
|
||||
virtual bool openPakFile(const char* szPackFileName) = 0;
|
||||
|
||||
virtual bool closePakFile(void) = 0;
|
||||
|
||||
virtual int32_t getFileCount(void) const = 0;
|
||||
|
||||
virtual bool getFileNode(int32_t index, FileNode& fileNode) const = 0;
|
||||
|
||||
virtual IFileStream* openFileStream(const char* szFileName) = 0;
|
||||
|
||||
virtual void closeFileStream(IFileStream* fileStream) = 0;
|
||||
};
|
||||
|
||||
class IFileStream
|
||||
{
|
||||
public:
|
||||
virtual const char* name(void) const = 0;
|
||||
virtual uint32_t size(void) const = 0;
|
||||
virtual uint32_t read(void* buffer, uint32_t size) = 0;
|
||||
virtual bool seek(uint32_t offset) = 0;
|
||||
virtual uint32_t tell(void) const = 0;
|
||||
virtual uint32_t crc32(void) = 0;
|
||||
virtual bool isEOF(void) const = 0;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user