Skip to content
modkitv0.2

file.h

#include <modkit/file.h>17 functions · 6 structs · 3 enums · 15 typedefs · 7 macros

Retained cross-platform file references and asynchronous pickers.

Functions

mk_async_request_cancelfunction

bool mk_async_request_cancel(mk_async_request_t request)

Cancellation is idempotent; a successful cancel still completes later.

ParameterTypeDescription
requestmk_async_request_tValue for request.

Returns True when the operation succeeds.

mk_file_enumerate_desc_initfunction

void mk_file_enumerate_desc_init(mk_file_enumerate_desc_t *desc)

Initialize the file enumerate desc.

ParameterTypeDescription
descmk_file_enumerate_desc_t *Configuration descriptor.

mk_file_picker_desc_initfunction

void mk_file_picker_desc_init(mk_file_picker_desc_t *desc)

Initialize the file picker desc.

ParameterTypeDescription
descmk_file_picker_desc_t *Configuration descriptor.

mk_file_picker_filter_initfunction

void mk_file_picker_filter_init(mk_file_picker_filter_t *filter)

Initialize the file picker filter.

ParameterTypeDescription
filtermk_file_picker_filter_t *Value for filter.

mk_file_picker_showfunction

mk_result mk_file_picker_show(const mk_file_picker_desc_t *desc, mk_file_picker_fn callback, void *user_data, mk_async_request_t *request)

Perform the file picker show operation.

ParameterTypeDescription
descconst mk_file_picker_desc_t *Configuration descriptor.
callbackmk_file_picker_fnCompletion callback.
user_datavoid *Caller-provided context.
requestmk_async_request_t *Value for request.

Returns MK_SUCCESS or an error result.

mk_file_picker_supportedfunction

bool mk_file_picker_supported(mk_file_picker_type_t type)

Perform the file picker supported operation.

ParameterTypeDescription
typemk_file_picker_type_tValue for type.

Returns True when the condition holds.

mk_file_read_desc_initfunction

void mk_file_read_desc_init(mk_file_read_desc_t *desc)

Read desc init for the file.

ParameterTypeDescription
descmk_file_read_desc_t *Configuration descriptor.

mk_file_ref_enumerate_asyncfunction

mk_result mk_file_ref_enumerate_async(mk_file_ref_t *directory, const mk_file_enumerate_desc_t *desc, mk_file_enumerate_fn callback, void *user_data, mk_async_request_t *request)

Perform the file ref enumerate async operation.

ParameterTypeDescription
directorymk_file_ref_t *Value for directory.
descconst mk_file_enumerate_desc_t *Configuration descriptor.
callbackmk_file_enumerate_fnCompletion callback.
user_datavoid *Caller-provided context.
requestmk_async_request_t *Value for request.

Returns MK_SUCCESS or an error result.

mk_file_ref_from_pathfunction

mk_file_ref_t * mk_file_ref_from_path(const char *path)

Perform the file ref from path operation.

ParameterTypeDescription
pathconst char *Value for path.

Returns A borrowed pointer, or NULL when unavailable.

mk_file_ref_get_infofunction

mk_result mk_file_ref_get_info(const mk_file_ref_t *file, mk_file_ref_info_t *info)

Get info from the file ref.

ParameterTypeDescription
fileconst mk_file_ref_t *Value for file.
infomk_file_ref_info_t *Value for info.

Returns MK_SUCCESS or an error result.

mk_file_ref_info_initfunction

void mk_file_ref_info_init(mk_file_ref_info_t *info)

Initialize the file ref info.

ParameterTypeDescription
infomk_file_ref_info_t *Value for info.

mk_file_ref_is_validfunction

bool mk_file_ref_is_valid(const mk_file_ref_t *file)

Test whether the file ref is valid.

ParameterTypeDescription
fileconst mk_file_ref_t *Value for file.

Returns True when the condition holds.

mk_file_ref_read_asyncfunction

mk_result mk_file_ref_read_async(mk_file_ref_t *file, const mk_file_read_desc_t *desc, mk_file_read_fn callback, void *user_data, mk_async_request_t *request)

Read async for the file ref.

ParameterTypeDescription
filemk_file_ref_t *Value for file.
descconst mk_file_read_desc_t *Configuration descriptor.
callbackmk_file_read_fnCompletion callback.
user_datavoid *Caller-provided context.
requestmk_async_request_t *Value for request.

Returns MK_SUCCESS or an error result.

mk_file_ref_releasefunction

void mk_file_ref_release(mk_file_ref_t *file)

Release file ref.

ParameterTypeDescription
filemk_file_ref_t *Value for file.

mk_file_ref_retainfunction

mk_file_ref_t * mk_file_ref_retain(mk_file_ref_t *file)

Retain file ref.

ParameterTypeDescription
filemk_file_ref_t *Value for file.

Returns A borrowed pointer, or NULL when unavailable.

mk_file_ref_write_asyncfunction

mk_result mk_file_ref_write_async(mk_file_ref_t *file, const mk_file_write_desc_t *desc, mk_file_write_fn callback, void *user_data, mk_async_request_t *request)

Write async for the file ref.

ParameterTypeDescription
filemk_file_ref_t *Value for file.
descconst mk_file_write_desc_t *Configuration descriptor.
callbackmk_file_write_fnCompletion callback.
user_datavoid *Caller-provided context.
requestmk_async_request_t *Value for request.

Returns MK_SUCCESS or an error result.

mk_file_write_desc_initfunction

void mk_file_write_desc_init(mk_file_write_desc_t *desc)

Write desc init for the file.

ParameterTypeDescription
descmk_file_write_desc_t *Configuration descriptor.

Structs

mk_file_enumerate_descstruct

Data for file enumerate desc.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
include_hiddenboolThe include hidden.

mk_file_picker_descstruct

Data for file picker desc.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
typemk_file_picker_type_tThe type.
titleconst char *The title.
default_locationmk_file_ref_t *The default location.
filtersconst mk_file_picker_filter_t *The filters.
filter_countuint32_tThe filter count.
allow_multipleboolThe allow multiple.

mk_file_picker_filterstruct

Data for file picker filter.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
nameconst char *The name.
patternconst char *The pattern.

mk_file_read_descstruct

Data for file read desc.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
offsetuint64_tThe offset.
max_bytesuint64_tThe max bytes.

mk_file_ref_infostruct

Data for file ref info.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
sourcemk_file_ref_source_tThe source.
kindmk_file_kind_tThe kind.
display_nameconst char *The display name.
local_pathconst char *The local path.
sizeuint64_tThe size.
readableboolThe readable.
writableboolThe writable.

mk_file_write_descstruct

Data for file write desc.

FieldTypeDescription
struct_sizeuint32_tThe struct size.
struct_versionuint32_tThe struct version.
dataconst void *The data.
sizesize_tThe size.
offsetuint64_tThe offset.
truncateboolThe truncate.

Enums

mk_file_kindenum

Values for file kind.

ValueDescription
MK_FILE_KIND_UNKNOWNSelects unknown.
MK_FILE_KIND_FILESelects file.
MK_FILE_KIND_DIRECTORYSelects directory.

mk_file_picker_typeenum

Values for file picker type.

ValueDescription
MK_FILE_PICKER_OPENSelects open.
MK_FILE_PICKER_SAVESelects save.
MK_FILE_PICKER_FOLDERSelects folder.

mk_file_ref_sourceenum

Values for file ref source.

ValueDescription
MK_FILE_REF_PATHSelects path.
MK_FILE_REF_BROWSER_FILESelects browser file.
MK_FILE_REF_CONTENT_URISelects content uri.
MK_FILE_REF_SECURITY_SCOPED_URLSelects security scoped URL.

Typedefs

mk_async_request_ttypedef

typedef uint64_t mk_async_request_t

Type used for async request.

mk_file_enumerate_desc_ttypedef

typedef struct mk_file_enumerate_desc mk_file_enumerate_desc_t

Data for file enumerate desc.

mk_file_enumerate_fntypedef

typedef void(*) mk_file_enumerate_fn(mk_async_request_t request, mk_result result, mk_file_ref_t *directory, mk_file_ref_t *const  *entries, uint32_t entry_count, void *user_data)

Callback used for file enumerate.

mk_file_kind_ttypedef

typedef enum mk_file_kind mk_file_kind_t

Values for file kind.

mk_file_picker_desc_ttypedef

typedef struct mk_file_picker_desc mk_file_picker_desc_t

Data for file picker desc.

mk_file_picker_filter_ttypedef

typedef struct mk_file_picker_filter mk_file_picker_filter_t

Data for file picker filter.

mk_file_picker_fntypedef

typedef void(*) mk_file_picker_fn(mk_async_request_t request, mk_result result, mk_file_ref_t *const  *files, uint32_t file_count, int32_t selected_filter, void *user_data)

Callback used for file picker.

mk_file_picker_type_ttypedef

typedef enum mk_file_picker_type mk_file_picker_type_t

Values for file picker type.

mk_file_read_desc_ttypedef

typedef struct mk_file_read_desc mk_file_read_desc_t

Data for file read desc.

mk_file_read_fntypedef

typedef void(*) mk_file_read_fn(mk_async_request_t request, mk_result result, mk_file_ref_t *file, const void *data, size_t size, void *user_data)

Callback used for file read.

mk_file_ref_info_ttypedef

typedef struct mk_file_ref_info mk_file_ref_info_t

Data for file ref info.

mk_file_ref_source_ttypedef

typedef enum mk_file_ref_source mk_file_ref_source_t

Values for file ref source.

mk_file_ref_ttypedef

typedef struct mk_file_ref_s mk_file_ref_t

Type used for file ref.

mk_file_write_desc_ttypedef

typedef struct mk_file_write_desc mk_file_write_desc_t

Data for file write desc.

mk_file_write_fntypedef

typedef void(*) mk_file_write_fn(mk_async_request_t request, mk_result result, mk_file_ref_t *file, size_t bytes_written, void *user_data)

Callback used for file write.

Macros

MK_ASYNC_REQUEST_INVALIDdefine

MK_ASYNC_REQUEST_INVALID

Invalid sentinel for async request.

MK_FILE_ENUMERATE_DESC_VERSIONdefine

MK_FILE_ENUMERATE_DESC_VERSION

ABI or format version for file enumerate desc.

MK_FILE_PICKER_DESC_VERSIONdefine

MK_FILE_PICKER_DESC_VERSION

ABI or format version for file picker desc.

MK_FILE_PICKER_FILTER_VERSIONdefine

MK_FILE_PICKER_FILTER_VERSION

ABI or format version for file picker filter.

MK_FILE_READ_DESC_VERSIONdefine

MK_FILE_READ_DESC_VERSION

ABI or format version for file read desc.

MK_FILE_REF_INFO_VERSIONdefine

MK_FILE_REF_INFO_VERSION

ABI or format version for file ref info.

MK_FILE_WRITE_DESC_VERSIONdefine

MK_FILE_WRITE_DESC_VERSION

ABI or format version for file write desc.