Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
kv_store.h
Go to the documentation of this file.
1
12
13#ifndef INFUSE_SDK_INCLUDE_INFUSE_FS_KV_STORE_H_
14#define INFUSE_SDK_INCLUDE_INFUSE_FS_KV_STORE_H_
15
16#include <stdint.h>
17#include <stdbool.h>
18#include <sys/types.h>
19
20#include <zephyr/sys/slist.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
32
45 void (*value_changed)(uint16_t key, const void *data, size_t data_len, void *user_ctx);
46
48 void *user_ctx;
49
51 sys_snode_t node;
53};
54
60void *kv_store_fs(void);
61
69
76
86
95uint32_t kv_store_reflect_crc(void);
96
105bool kv_store_key_enabled(uint16_t key);
106
115bool kv_store_key_exists(uint16_t key);
116
125ssize_t kv_store_key_data_size(uint16_t key);
126
137
148
158ssize_t kv_store_delete(uint16_t key);
159
172ssize_t kv_store_write(uint16_t key, const void *data, size_t data_len);
173
184#define KV_STORE_WRITE(key, data) kv_store_write(key, data, sizeof(*data))
185
197ssize_t kv_store_read(uint16_t key, void *data, size_t max_data_len);
198
209#define KV_STORE_READ(key, data) kv_store_read(key, data, sizeof(*data))
210
222ssize_t kv_store_read_fallback(uint16_t key, void *data, size_t max_data_len, const void *fallback,
223 size_t fallback_len);
224
234#define KV_STORE_READ_FALLBACK(key, data, fallback) \
235 kv_store_read_fallback(key, data, sizeof(*data), fallback, sizeof(*fallback))
236
240
241#ifdef __cplusplus
242}
243#endif
244
245#endif /* INFUSE_SDK_INCLUDE_INFUSE_FS_KV_STORE_H_ */
int kv_store_external_read_only(uint16_t key)
Check whether a given keys data is valid to update externally.
bool kv_store_key_exists(uint16_t key)
Check whether a given key exists in the store.
void * kv_store_fs(void)
Get filesystem used by KV store.
int kv_store_external_write_only(uint16_t key)
Check whether a given keys data is valid to return externally.
ssize_t kv_store_delete(uint16_t key)
Delete a value from the KV store.
ssize_t kv_store_key_data_size(uint16_t key)
Check the size of data stored for a key.
int kv_store_reset(void)
Reset key-value storage.
ssize_t kv_store_read(uint16_t key, void *data, size_t max_data_len)
Read a value from the KV store.
bool kv_store_unregister_callback(struct kv_store_cb *cb)
Unregister a previously registered KV store callback.
bool kv_store_key_enabled(uint16_t key)
Check whether a given key is valid for reading/writing.
ssize_t kv_store_write(uint16_t key, const void *data, size_t data_len)
Write a value to the KV store.
ssize_t kv_store_read_fallback(uint16_t key, void *data, size_t max_data_len, const void *fallback, size_t fallback_len)
Read a key from the KV store, with a fallback if it doesn't exist.
uint32_t kv_store_reflect_crc(void)
Get the current KV store reflect CRC.
void kv_store_register_callback(struct kv_store_cb *cb)
Register to be notified of KV store events.
KV store callback structure.
Definition kv_store.h:34
void(* value_changed)(uint16_t key, const void *data, size_t data_len, void *user_ctx)
The value for a key has changed.
Definition kv_store.h:45
void * user_ctx
User provided context pointer.
Definition kv_store.h:48