#include "file_access.h" #include #include uint8_t connectors_count = 1; fileaccess_state_t fileaccess_init(const fileaccess_t *fileaccess, void *data) { return fileaccess->init(data); } bool fileaccess_deinit(fileaccess_state_t state) { return state.fileaccess->deinit(state); } directory_or_error_t fileaccess_directory_list(fileaccess_state_t state, char *path) { return state.fileaccess->list_directory(state, path); } directory_or_error_t fileaccess_root_list(fileaccess_state_t state) { return state.fileaccess->list_root(state); } directory_or_error_t fileaccess_directory_create(fileaccess_state_t state, char *path) { return state.fileaccess->create_directory(state, path); } file_operation_error_t fileaccess_directory_close(fileaccess_state_t state, directory_t *directory) { return state.fileaccess->close_directory(state, directory); } file_operation_error_t fileaccess_directory_delete(fileaccess_state_t state, char *path) { return state.fileaccess->delete_directory(state, path); } file_operation_error_t fileaccess_file_get_mimetype(fileaccess_state_t state, file_t *file, /*out*/ char *mime) { return state.fileaccess->get_mime_type(state, file, mime); } executing_file_or_error_t fileaccess_file_execute(fileaccess_state_t state, file_t *file, char *args) { return state.fileaccess->execute_file(state, file, args); } file_operation_error_t fileaccess_file_delete(fileaccess_state_t state, char *path) { return state.fileaccess->delete_file(state, path); } file_operation_error_t file_operation_error_from_errno(int error) { switch (error) { case EACCES: case EROFS: return FILOPER_PERMISSIONS; case EEXIST: case ENOTDIR: return FILOPER_ALREADY_EXISTS; case ENOENT: return FILOPER_DOES_NOT_EXIST; case ENOSPC: return FILOPER_NOT_ENOUGH_SPACE; default: return FILOPER_UNKNOWN; } }