#pragma once #include #include #include "stream.h" #ifdef __cplusplus extern "C" { #endif /** * Allocate a file stream with buffered read operations * @return Stream* */ Stream* buffered_file_stream_alloc(Storage* storage); /** * Opens an existing file or creates a new one. * @param stream pointer to file stream object. * @param path path to file * @param access_mode access mode from FS_AccessMode * @param open_mode open mode from FS_OpenMode * @return True on success, False on failure. You need to close the file even if the open operation failed. */ bool buffered_file_stream_open( Stream* stream, const char* path, FS_AccessMode access_mode, FS_OpenMode open_mode); /** * Closes the file. * @param stream pointer to file stream object. * @return True on success, False on failure. */ bool buffered_file_stream_close(Stream* stream); /** * Forces write from cache to the underlying file. * @param stream pointer to file stream object. * @return True on success, False on failure. */ bool buffered_file_stream_sync(Stream* stream); /** * Retrieves the error id from the file object * @param stream pointer to stream object. * @return FS_Error error id */ FS_Error buffered_file_stream_get_error(Stream* stream); #ifdef __cplusplus } #endif