From f3e040230772f978540a71aea43dfde200992922 Mon Sep 17 00:00:00 2001 From: "John Wilbert M. Villamor" Date: Sat, 6 Apr 2019 10:11:07 +0800 Subject: First commit --- tools/lzpack/filelist.cpp | 79 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 tools/lzpack/filelist.cpp (limited to 'tools/lzpack/filelist.cpp') diff --git a/tools/lzpack/filelist.cpp b/tools/lzpack/filelist.cpp new file mode 100644 index 0000000..8554ae0 --- /dev/null +++ b/tools/lzpack/filelist.cpp @@ -0,0 +1,79 @@ +#include "filelist.h" + +FileListClass::FileListClass() { + + NumFiles = 0; + AllocFiles = 1; + + FileList = (FileListEntry*)malloc(sizeof(FileListEntry)); + memset(FileList, 0x00, sizeof(FileListEntry)); + +} + +FileListClass::~FileListClass() { + + for(int i=NumFiles-1; i>=0; i--) { + + if (FileList[i].fileName != NULL) + free(FileList[i].fileName); + + if (FileList[i].aliasName != NULL) + free(FileList[i].aliasName); + + } + + free(FileList); + +} + +void FileListClass::AddFileEntry(const char* fileName, const char* aliasName, short windowSize, short hash1Size, short hash2Size) { + + if (NumFiles >= AllocFiles) { + + FileList = (FileListEntry*)realloc(FileList, sizeof(FileListEntry)*(AllocFiles+1)); + memset(&FileList[AllocFiles], 0x00, sizeof(FileListEntry)); + + AllocFiles++; + + } + + if (aliasName == NULL) + FileList[NumFiles].aliasName = NULL; + else + FileList[NumFiles].aliasName = strdup(aliasName); + + FileList[NumFiles].fileName = strdup(fileName); + FileList[NumFiles].windowSize = windowSize; + FileList[NumFiles].hash1Size = hash1Size; + FileList[NumFiles].hash2Size = hash2Size; + NumFiles++; + +} + +const FileListEntry* FileListClass::Entry(int index) { + + return(&FileList[index]); + +} + +int FileListClass::EntryCount() { + + return(NumFiles); + +} + +void FileListClass::PrintEntries() { + + for(int i=0; i