PebbleOS v4.44.0-150-gc3023ce72
Loading...
Searching...
No Matches
settings.h File Reference
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <pbl/fs/fs.h>
#include <pbl/kernel/compiler.h>

Data Structures

struct  pbl_settings_file
 Open settings file. More...
 
struct  pbl_settings_watch
 Watch on the changes to a settings file. More...
 
struct  pbl_settings_record
 Record being visited by pbl_settings_each() or pbl_settings_rewrite(). More...
 

Macros

#define PBL_SETTINGS_KEY_MAX_LEN   127
 Maximum key length in bytes.
 
#define PBL_SETTINGS_VAL_MAX_LEN   2046
 Maximum value length in bytes.
 

Typedefs

typedef void(* pbl_settings_change_cb_t) (const void *key, size_t key_len, uint32_t last_modified, void *user_data)
 Callback invoked after a record of a watched file is written.
 
typedef bool(* pbl_settings_each_cb_t) (struct pbl_settings_file *file, struct pbl_settings_record *info, void *context)
 Callback for pbl_settings_each().
 
typedef void(* pbl_settings_rewrite_cb_t) (struct pbl_settings_file *old_file, struct pbl_settings_file *new_file, struct pbl_settings_record *info, void *context)
 Callback for pbl_settings_rewrite().
 
typedef bool(* pbl_settings_filter_cb_t) (void *key, size_t key_len, void *value, size_t value_len, void *context)
 Filter callback for pbl_settings_rewrite_filtered().
 

Functions

int pbl_settings_open (struct pbl_settings_file *file, const char *name, int max_used_space)
 Open or create a settings file.
 
int pbl_settings_open_growable (struct pbl_settings_file *file, const char *name, int max_used_space, int initial_alloc_size)
 Open or create a settings file that grows on demand.
 
void pbl_settings_close (struct pbl_settings_file *file)
 Close a settings file.
 
bool pbl_settings_exists (struct pbl_settings_file *file, const void *key, size_t key_len)
 Check whether a key holds a non-empty value.
 
int pbl_settings_delete (struct pbl_settings_file *file, const void *key, size_t key_len)
 Delete a record.
 
size_t pbl_settings_get_len (struct pbl_settings_file *file, const void *key, size_t key_len)
 Get the length of a value.
 
int pbl_settings_get (struct pbl_settings_file *file, const void *key, size_t key_len, void *val_out, size_t val_out_len)
 Read a value.
 
int pbl_settings_set (struct pbl_settings_file *file, const void *key, size_t key_len, const void *val, size_t val_len)
 Write a value, timestamped with the current time.
 
int pbl_settings_mark_synced (struct pbl_settings_file *file, const void *key, size_t key_len)
 Mark a record as synced.
 
int pbl_settings_mark_all_dirty (struct pbl_settings_file *file)
 Mark all records as not synced, to trigger a full sync.
 
void pbl_settings_watch_add (struct pbl_settings_watch *watch)
 Register a watch on the changes to a settings file.
 
int pbl_settings_set_byte (struct pbl_settings_file *file, const void *key, size_t key_len, size_t offset, uint8_t byte)
 Write a single byte of a value in place.
 
void pbl_settings_read_key (struct pbl_settings_file *file, void *buf, size_t buf_len)
 Read the key of the record being visited.
 
void pbl_settings_read_val (struct pbl_settings_file *file, void *buf, size_t buf_len)
 Read the value of the record being visited.
 
void pbl_settings_each (struct pbl_settings_file *file, pbl_settings_each_cb_t cb, void *context)
 Call a callback for every valid record.
 
int pbl_settings_rewrite (struct pbl_settings_file *file, pbl_settings_rewrite_cb_t cb, void *context)
 Rewrite a settings file record by record.
 
int pbl_settings_rewrite_filtered (struct pbl_settings_file *file, pbl_settings_filter_cb_t filter_cb, void *context)
 Rewrite a settings file, keeping only the records a filter accepts.
 
int pbl_settings_compact (struct pbl_settings_file *file)
 Compact a settings file.