Newer
Older
ubixfs-2 / btree_standardVFS.cpp
#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