kolibrios-fun/contrib/media/updf/include/compressedfiles.h
Serhii Sakhno cd35d38ad2 updf: restore menuetlibc version
git-svn-id: svn://kolibrios.org@8429 a494cfbc-eb01-0410-851d-a64ba20cac60
2020-12-16 18:41:33 +00:00

52 lines
1.3 KiB
C++

#ifndef __compressedfiles_h__
#define __compressedfiles_h__
#include "lisptype.h"
#include "lispassert.h"
class CompressedFiles
{
public:
CompressedFiles(unsigned char * aBuffer, LispInt aFullSize, LispInt aCompressed);
~CompressedFiles();
LispInt FindFile(LispChar * aName);
LispChar * Name(LispInt aIndex);
LispChar * Contents(LispInt aIndex);
inline LispInt NrFiles() const {return iNrFiles;}
void Sizes(LispInt& aOriginalSize, LispInt& aCompressedSize, LispInt aIndex);
inline LispInt IsValid() const {return iIsValid;}
protected:
LispInt GetInt(unsigned char*&indptr);
private:
// copy constructor not implemented yet, so an assert is in order
CompressedFiles(const CompressedFiles& aOther)
: iFullBuffer(NULL),iCompressed(0),iFullSize(0),iIndex(NULL),iNrFiles(0),iIndexSize(0),iIsValid(LispFalse)
{
LISPASSERT(0);
}
inline CompressedFiles& operator=(const CompressedFiles& aOther)
{
iFullBuffer = NULL;
iCompressed = 0;
iFullSize = 0;
iIndex = NULL;
iNrFiles = 0;
iIndexSize = 0;
iIsValid = LispFalse;
LISPASSERT(0);
return *this;
}
private:
unsigned char * iFullBuffer;
LispInt iCompressed;
LispInt iFullSize;
unsigned char * *iIndex;
LispInt iNrFiles;
LispInt iIndexSize;
LispInt iIsValid;
};
#endif // __compressedfiles_h__