PebbleOS
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions
settings_file.h File Reference
#include "settings_raw_iter.h"
#include <time.h>
#include <pbl/util/units.h>

Data Structures

struct  SettingsFile
 Open settings file. More...
 
struct  SettingsRecordInfo
 Record being visited by settings_file_each() or settings_file_rewrite(). More...
 

Macros

#define DELETED_LIFETIME   (0 * PBL_SEC_PER_DAY)
 Minimum time in seconds a deleted record is kept before compaction drops it.
 

Typedefs

typedef void(* SettingsFileChangeCallback) (SettingsFile *file, const void *key, int key_len, time_t last_modified)
 Callback invoked after a record is written.
 
typedef void(* SettingsFileGetter) (SettingsFile *file, void *buf, size_t buf_len)
 Read the key or value of the record being visited.
 
typedef bool(* SettingsFileEachCallback) (SettingsFile *file, SettingsRecordInfo *info, void *context)
 Callback for settings_file_each().
 
typedef void(* SettingsFileRewriteCallback) (SettingsFile *old_file, SettingsFile *new_file, SettingsRecordInfo *info, void *context)
 Callback for settings_file_rewrite().
 
typedef bool(* SettingsFileRewriteFilterCallback) (void *key, size_t key_len, void *value, size_t value_len, void *context)
 Filter callback for settings_file_rewrite_filtered().
 

Functions

status_t settings_file_open (SettingsFile *file, const char *name, int max_used_space)
 Open or create a settings file.
 
status_t settings_file_open_growable (SettingsFile *file, const char *name, int max_used_space, int initial_alloc_size)
 Open or create a settings file that grows on demand.
 
void settings_file_close (SettingsFile *file)
 Close a settings file.
 
bool settings_file_exists (SettingsFile *file, const void *key, size_t key_len)
 Check whether a key holds a non-empty value.
 
status_t settings_file_delete (SettingsFile *file, const void *key, size_t key_len)
 Delete a record.
 
int settings_file_get_len (SettingsFile *file, const void *key, size_t key_len)
 Get the length of a value.
 
status_t settings_file_get (SettingsFile *file, const void *key, size_t key_len, void *val_out, size_t val_out_len)
 Read a value.
 
status_t settings_file_set (SettingsFile *file, const void *key, size_t key_len, const void *val, size_t val_len)
 Write a value, timestamped with the current time.
 
status_t settings_file_set_with_timestamp (SettingsFile *file, const void *key, size_t key_len, const void *val, size_t val_len, uint32_t timestamp)
 Write a value with a given timestamp instead of the current time.
 
status_t settings_file_mark_synced (SettingsFile *file, const void *key, size_t key_len)
 Mark a record as synced.
 
status_t settings_file_mark_all_dirty (SettingsFile *file)
 Mark all records as not synced, to trigger a full sync.
 
void settings_file_set_change_callback (SettingsFileChangeCallback callback)
 Register the callback invoked after any record of any settings file is written.
 
status_t settings_file_set_byte (SettingsFile *file, const void *key, size_t key_len, size_t offset, uint8_t byte)
 Write a single byte of a value in place.
 
status_t settings_file_each (SettingsFile *file, SettingsFileEachCallback cb, void *context)
 Call a callback for every valid record.
 
status_t settings_file_rewrite (SettingsFile *file, SettingsFileRewriteCallback cb, void *context)
 Rewrite a settings file record by record.
 
status_t settings_file_rewrite_filtered (SettingsFile *file, SettingsFileRewriteFilterCallback filter_cb, void *context)
 Rewrite a settings file, keeping only the records a filter accepts.
 
status_t settings_file_compact (SettingsFile *file)
 Compact a settings file.