Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
kv_store APIs

kv_store API More...

Data Structures

struct  kv_store_cb
 KV store callback structure. More...
 

Macros

#define KV_STORE_WRITE(key, data)
 Write a key to the KV store.
 
#define KV_STORE_READ(key, data)
 Read a key from the KV store.
 
#define KV_STORE_READ_FALLBACK(key, data, fallback)
 Read a key from the KV store, with a fallback if it doesn't exist.
 

Functions

void * kv_store_fs (void)
 Get filesystem used by KV store.
 
int kv_store_reset (void)
 Reset key-value storage.
 
void kv_store_register_callback (struct kv_store_cb *cb)
 Register to be notified of KV store events.
 
uint32_t kv_store_reflect_crc (void)
 Get the current KV store reflect CRC.
 
bool kv_store_key_enabled (uint16_t key)
 Check whether a given key is valid for reading/writing.
 
bool kv_store_key_exists (uint16_t key)
 Check whether a given key exists in the store.
 
int kv_store_external_write_only (uint16_t key)
 Check whether a given keys data is valid to return externally.
 
int kv_store_external_read_only (uint16_t key)
 Check whether a given keys data is valid to update externally.
 
ssize_t kv_store_delete (uint16_t key)
 Delete a value from the KV store.
 
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 (uint16_t key, void *data, size_t max_data_len)
 Read a value from 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.
 

Detailed Description

kv_store API

Macro Definition Documentation

◆ KV_STORE_READ

#define KV_STORE_READ ( key,
data )

#include <infuse/fs/kv_store.h>

Value:
kv_store_read(key, data, sizeof(*data))
ssize_t kv_store_read(uint16_t key, void *data, size_t max_data_len)
Read a value from the KV store.

Read a key from the KV store.

Note
Data size is automatically determined from provided argument type
Parameters
keyKey to read from
dataPointer to value
Returns
a value from kv_store_read

◆ KV_STORE_READ_FALLBACK

#define KV_STORE_READ_FALLBACK ( key,
data,
fallback )

#include <infuse/fs/kv_store.h>

Value:
kv_store_read_fallback(key, data, sizeof(*data), fallback, sizeof(*fallback))
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.

Read a key from the KV store, with a fallback if it doesn't exist.

Parameters
keyKey to read from
dataPointer to value
fallbackPointer to fallback value
Returns
a value from kv_store_read_fallback

◆ KV_STORE_WRITE

#define KV_STORE_WRITE ( key,
data )

#include <infuse/fs/kv_store.h>

Value:
kv_store_write(key, data, sizeof(*data))
ssize_t kv_store_write(uint16_t key, const void *data, size_t data_len)
Write a value to the KV store.

Write a key to the KV store.

Note
Data size is automatically determined from provided argument type
Parameters
keyKey to write to
dataPointer to value
Returns
a value from kv_store_write

Function Documentation

◆ kv_store_delete()

ssize_t kv_store_delete ( uint16_t key)

#include <infuse/fs/kv_store.h>

Delete a value from the KV store.

Parameters
keyKey to delete
Return values
0if key was deleted
-EACCESif key is not enabled
-ENOENTif key does not exist

◆ kv_store_external_read_only()

int kv_store_external_read_only ( uint16_t key)

#include <infuse/fs/kv_store.h>

Check whether a given keys data is valid to update externally.

Parameters
keyKey to check
Return values
0key data is valid to update
-EACCESSkey is not enabled
-EPERMkey data should not be updated

◆ kv_store_external_write_only()

int kv_store_external_write_only ( uint16_t key)

#include <infuse/fs/kv_store.h>

Check whether a given keys data is valid to return externally.

Parameters
keyKey to check
Return values
0key data is valid to return
-EACCESSkey is not enabled
-EPERMkey data should not be returned

◆ kv_store_fs()

void * kv_store_fs ( void )

#include <infuse/fs/kv_store.h>

Get filesystem used by KV store.

Returns
void* struct nvs_fs pointer

◆ kv_store_key_enabled()

bool kv_store_key_enabled ( uint16_t key)

#include <infuse/fs/kv_store.h>

Check whether a given key is valid for reading/writing.

Parameters
keyKey to check
Returns
true Key is valid to use
false Key is invalid

◆ kv_store_key_exists()

bool kv_store_key_exists ( uint16_t key)

#include <infuse/fs/kv_store.h>

Check whether a given key exists in the store.

Parameters
keyKey to check
Returns
true Key value exists in the store
false Key value does not exist

◆ kv_store_read()

ssize_t kv_store_read ( uint16_t key,
void * data,
size_t max_data_len )

#include <infuse/fs/kv_store.h>

Read a value from the KV store.

Parameters
keyKey to read from
dataPointer to buffer for data
max_data_lenMaximum size of data buffer
Return values
>0length of data read
-EACCESif key is not enabled
-errnovalue from nvs_read otherwise

◆ kv_store_read_fallback()

ssize_t kv_store_read_fallback ( uint16_t key,
void * data,
size_t max_data_len,
const void * fallback,
size_t fallback_len )

#include <infuse/fs/kv_store.h>

Read a key from the KV store, with a fallback if it doesn't exist.

Parameters
keyKey to read from
dataPointer to buffer for data
max_data_lenMaximum size of data buffer
fallbackPointer to the fallback value
fallback_lenSize of the fallback value
Returns
ssize_t Size of read data

◆ kv_store_reflect_crc()

uint32_t kv_store_reflect_crc ( void )

#include <infuse/fs/kv_store.h>

Get the current KV store reflect CRC.

While this value does not change value, there have been no changes to any KV data that need to be actioned by the cloud.

Returns
uint32_t Current global CRC over KV store data

◆ kv_store_register_callback()

void kv_store_register_callback ( struct kv_store_cb * cb)

#include <infuse/fs/kv_store.h>

Register to be notified of KV store events.

Parameters
cbCallback struct to register

◆ kv_store_reset()

int kv_store_reset ( void )

#include <infuse/fs/kv_store.h>

Reset key-value storage.

Return values
0on success
-errnoon failure

◆ kv_store_write()

ssize_t kv_store_write ( uint16_t key,
const void * data,
size_t data_len )

#include <infuse/fs/kv_store.h>

Write a value to the KV store.

Parameters
keyKey to write to
dataPointer to value
data_lenLength of value in bytes
Return values
0if data already matched
>0length of data written
-EACCESif key is not enabled
-errnovalue from nvs_write otherwise