A mechanism to store persistent application data and state.
The Persistent Storage API provides you with a mechanism for performing a variety of tasks, like saving user settings, caching data from the phone app, or counting high scores for Pebble watchapp games.
In Pebble OS, storage is defined by a collection of fields that you can create, modify or delete. In the API, a field is specified as a key with a corresponding value.
Using the Storage API, every app is able to get its own persistent storage space. Each value in that space is associated with a uint32_t key.
Storage supports saving integers, strings and byte arrays. The maximum size of byte arrays and strings is defined by PERSIST_DATA_MAX_LENGTH (currently set to 256 bytes). You call the function persist_exists(key), which returns a boolean indicating if the key exists or not. The Storage API enables your app to save its state, and when compared to using AppMessage to retrieve values from the phone, it provides you with a much faster way to restore state. In addition, it draws less power from the battery.
Note that the size of all persisted values cannot exceed 4K.
Deletes the value of a key from persistent storage.
key | The key of the field to delete from. |
bool persist_exists | ( | const uint32_t | key) |
Checks whether a value has been set for a given key in persistent storage.
key | The key of the field to check. |
int persist_get_size | ( | const uint32_t | key) |
Gets the size of a value for a given key in persistent storage.
key | The key of the field to lookup the data size. |
bool persist_read_bool | ( | const uint32_t | key) |
Reads a bool value for a given key from persistent storage. If the value has not yet been set, this will return false.
key | The key of the field to read from. |
Reads a blob of data for a given key from persistent storage into a given buffer. If the value has not yet been set, the given buffer is left unchanged.
key | The key of the field to read from. |
buffer | The pointer to a buffer to be written to. |
buffer_size | The maximum size of the given buffer. |
int32_t persist_read_int | ( | const uint32_t | key) |
Reads an int value for a given key from persistent storage.
key | The key of the field to read from. |
Reads a string for a given key from persistent storage into a given buffer. The string will be null terminated. If the value has not yet been set, the given buffer is left unchanged.
key | The key of the field to read from. |
buffer | The pointer to a buffer to be written to. |
buffer_size | The maximum size of the given buffer. This includes the null character. |
Writes a bool value flag for a given key into persistent storage.
key | The key of the field to write to. |
value | The boolean value to write. |
Writes a blob of data of a specified size in bytes for a given key into persistent storage. The maximum size is PERSIST_DATA_MAX_LENGTH.
key | The key of the field to write to. |
data | The pointer to the blob of data. |
size | The size in bytes. |
Writes an int value for a given key into persistent storage.
key | The key of the field to write to. |
value | The int value to write. |
int persist_write_string | ( | const uint32_t | key, |
const char * | cstring | ||
) |
Writes a string a given key into persistent storage. The maximum size is PERSIST_STRING_MAX_LENGTH including the null terminator.
key | The key of the field to write to. |
cstring | The pointer to null terminated string. |
typedef int32_t status_t |
Return value for system operations. See StatusCode for possible values.
enum StatusCode |
Status codes. See status_t.
#define PERSIST_DATA_MAX_LENGTH 256 |
The maximum size of a persist value in bytes.
#define PERSIST_STRING_MAX_LENGTH PERSIST_DATA_MAX_LENGTH |
The maximum size of a persist string in bytes including the NULL terminator.