From 53da4dd1dca508dbcd993e97e39da4a8b2f3d7f7 Mon Sep 17 00:00:00 2001 From: bjorn Date: Wed, 23 Nov 2022 11:58:42 -0800 Subject: [PATCH] rm File again; forks please yell if you still need it --- src/modules/filesystem/file.c | 91 ----------------------------------- src/modules/filesystem/file.h | 26 ---------- 2 files changed, 117 deletions(-) delete mode 100644 src/modules/filesystem/file.c delete mode 100644 src/modules/filesystem/file.h diff --git a/src/modules/filesystem/file.c b/src/modules/filesystem/file.c deleted file mode 100644 index 07fda6f1..00000000 --- a/src/modules/filesystem/file.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "filesystem/file.h" -#include "filesystem/filesystem.h" -#include "util.h" -#include -#include - -// Currently only read operations are supported by File and all files are read into memory fully on open - -typedef struct { - uint8_t* data; - size_t offset; - size_t size; -} FileInner; - -File* lovrFileInit(File* file ,const char* path) { - file->path = path; - file->handle = NULL; - file->mode = 0; - return file; -} - -void lovrFileDestroy(void* ref) { - File* file = ref; - if (file->handle) { - lovrFileClose(file); - } - free(file); -} - -bool lovrFileOpen(File* file, FileMode mode) { - lovrAssert(!file->handle, "File is already open"); - file->mode = mode; - - if (mode == OPEN_WRITE || mode == OPEN_APPEND) - return false; - - FileInner *fileInner = malloc(sizeof(FileInner)); - fileInner->offset = 0; - fileInner->data = lovrFilesystemRead(file->path, -1, &fileInner->size); - file->handle = fileInner; - - if (!fileInner->data) { - fileInner->size = 0; - return false; - } - - return true; -} - -void lovrFileClose(File* file) { - lovrAssert(file->handle, "File must be open to close it"); - FileInner *fileInner = (FileInner *)file->handle; - free(fileInner->data); - free(file->handle); - file->handle = NULL; -} - -size_t lovrFileRead(File* file, void* data, size_t bytes) { - lovrAssert(file->handle && file->mode == OPEN_READ, "File must be open for reading"); - FileInner *fileInner = (FileInner *)file->handle; - if (fileInner->offset + bytes > fileInner->size) - return 0; - memcpy(data, fileInner->data + fileInner->offset, bytes); - fileInner->offset += bytes; - return bytes; -} - -size_t lovrFileWrite(File* file, const void* data, size_t bytes) { - lovrThrow("Writing not supported"); -} - -size_t lovrFileGetSize(File* file) { - lovrAssert(file->handle, "File must be open to get its size"); - FileInner *fileInner = (FileInner *)file->handle; - return fileInner->size; -} - -bool lovrFileSeek(File* file, size_t position) { - lovrAssert(file->handle, "File must be open to seek"); - FileInner *fileInner = (FileInner *)file->handle; - if (position >= fileInner->size) // FIXME: Should seeking to fileInner->size exactly be allowed? - return false; - fileInner->offset = position; - return true; -} - -size_t lovrFileTell(File* file) { - lovrAssert(file->handle, "File must be open to tell"); - FileInner *fileInner = (FileInner *)file->handle; - return fileInner->offset; -} diff --git a/src/modules/filesystem/file.h b/src/modules/filesystem/file.h deleted file mode 100644 index 96ed5550..00000000 --- a/src/modules/filesystem/file.h +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -#pragma once - -typedef enum { - OPEN_READ, - OPEN_WRITE, - OPEN_APPEND -} FileMode; - -typedef struct { - const char* path; - void* handle; - FileMode mode; -} File; - -File* lovrFileInit(File* file, const char* filename); -void lovrFileDestroy(void* ref); -bool lovrFileOpen(File* file, FileMode mode); -void lovrFileClose(File* file); -size_t lovrFileRead(File* file, void* data, size_t bytes); -size_t lovrFileWrite(File* file, const void* data, size_t bytes); -size_t lovrFileGetSize(File* file); -bool lovrFileSeek(File* file, size_t position); -size_t lovrFileTell(File* file);