#include <stdio.h> #include <unistd.h> #include "btree_vfs.h" #include "btree_standardVFS.h" StandardVFS::StandardVFS(void) { dataFile = NULL; openFile = false; } // StandardVFS::StandardVFS bool StandardVFS::fClose(void) { int result = 0; // failure by default; if (openFile) result = fclose(dataFile); // if open close it openFile = (result == 0); // was it closed properly? return result; // return true if closed } // StandardVFS::fClose bool StandardVFS::fCreate(const char * filename) { dataFile = fopen(filename, "wb+"); openFile = (dataFile != NULL); return openFile; } // StandardVFS::fCreate bool StandardVFS::fExist(const char * filename) { return (access(filename, F_OK) == 0); } // StandardVFS::fExist bool StandardVFS::fOpen(const char * filename) { dataFile = fopen(filename, "rb+"); openFile = (dataFile != NULL); return openFile; } // StandardVFS::fOpen bool StandardVFS::fRead(void * buf, uInt32 count) { size_t result = fread(buf, 1, count, dataFile); return (result == count); } // StandardVFS::fRead bool StandardVFS::fSeek(uInt32 offset) { int result = fseek(dataFile, offset, SEEK_SET); return (result != EOF); } // StandardVFS::fSeek bool StandardVFS::fWrite(void * buf, uInt32 count) { size_t result = fwrite(buf, 1, count, dataFile); return (result == count); } // StandardVFS::fWrite StandardVFS::~StandardVFS(void) { if (openFile) fClose(); return; } // StandardVFS::~StandardVFS