#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