unleashed-firmware/lib/toolbox/stream/buffered_file_stream.h

54 lines
1.3 KiB
C
Raw Normal View History

#pragma once
#include <stdlib.h>
#include <storage/storage.h>
#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