Anjay Lite
Loading...
Searching...
No Matches
persistence.h
Go to the documentation of this file.
1/*
2 * Copyright 2023-2025 AVSystem <avsystem@avsystem.com>
3 * AVSystem Anjay Lite LwM2M SDK
4 * All rights reserved.
5 *
6 * Licensed under AVSystem Anjay Lite LwM2M Client SDK - Non-Commercial License.
7 * See the attached LICENSE file for details.
8 */
9
10#include <anj/init.h>
11
28#ifndef ANJ_PERSISTENCE_H
29# define ANJ_PERSISTENCE_H
30
31# include <stdbool.h>
32# include <stdint.h>
33# include <string.h>
34
35# ifdef __cplusplus
36extern "C" {
37# endif
38
39# ifdef ANJ_WITH_PERSISTENCE
40
45# define ANJ_PERSISTENCE_MAGIC_MAX_SIZE 16
46
57typedef int anj_persistence_read_cb_t(void *ctx, void *buf, size_t size);
58
69typedef int anj_persistence_write_cb_t(void *ctx, const void *buf, size_t size);
70
85
97
113 void *ctx);
114
125 void *ctx);
126
130static inline anj_persistence_direction_t
134
148 void *inout_buffer,
149 size_t buffer_size);
150
168 char *inout_str,
169 size_t out_max_size);
170
188 const void *magic,
189 size_t magic_size);
190
193 bool *inout_value) {
194 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
195}
196
199 uint8_t *inout_value) {
200 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
201}
202
205 uint16_t *inout_value) {
206 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
207}
208
211 uint32_t *inout_value) {
212 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
213}
214
217 uint64_t *inout_value) {
218 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
219}
220
223 int8_t *inout_value) {
224 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
225}
226
229 int16_t *inout_value) {
230 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
231}
232
235 int32_t *inout_value) {
236 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
237}
238
241 int64_t *inout_value) {
242 return anj_persistence_bytes(ctx, inout_value, sizeof(*inout_value));
243}
244
245# endif // ANJ_WITH_PERSISTENCE
246
247# ifdef __cplusplus
248}
249# endif
250
251#endif // ANJ_PERSISTENCE_H
Global configuration validation header for Anjay Lite.
int anj_persistence_string(const anj_persistence_context_t *ctx, char *inout_str, size_t out_max_size)
static int anj_persistence_u64(const anj_persistence_context_t *ctx, uint64_t *inout_value)
Definition persistence.h:216
int anj_persistence_bytes(const anj_persistence_context_t *ctx, void *inout_buffer, size_t buffer_size)
anj_persistence_direction_t
Definition persistence.h:74
@ ANJ_PERSISTENCE_RESTORE
Definition persistence.h:83
@ ANJ_PERSISTENCE_STORE
Definition persistence.h:78
static int anj_persistence_u16(const anj_persistence_context_t *ctx, uint16_t *inout_value)
Definition persistence.h:204
anj_persistence_context_t anj_persistence_restore_context_create(anj_persistence_read_cb_t *read_cb, void *ctx)
anj_persistence_context_t anj_persistence_store_context_create(anj_persistence_write_cb_t *write_cb, void *ctx)
static int anj_persistence_i64(const anj_persistence_context_t *ctx, int64_t *inout_value)
Definition persistence.h:240
static anj_persistence_direction_t anj_persistence_direction(const anj_persistence_context_t *ctx)
Definition persistence.h:131
static int anj_persistence_i16(const anj_persistence_context_t *ctx, int16_t *inout_value)
Definition persistence.h:228
int anj_persistence_write_cb_t(void *ctx, const void *buf, size_t size)
Definition persistence.h:69
int anj_persistence_magic(const anj_persistence_context_t *ctx, const void *magic, size_t magic_size)
static int anj_persistence_i8(const anj_persistence_context_t *ctx, int8_t *inout_value)
Definition persistence.h:222
static int anj_persistence_bool(const anj_persistence_context_t *ctx, bool *inout_value)
Definition persistence.h:192
int anj_persistence_read_cb_t(void *ctx, void *buf, size_t size)
Definition persistence.h:57
static int anj_persistence_u32(const anj_persistence_context_t *ctx, uint32_t *inout_value)
Definition persistence.h:210
static int anj_persistence_u8(const anj_persistence_context_t *ctx, uint8_t *inout_value)
Definition persistence.h:198
static int anj_persistence_i32(const anj_persistence_context_t *ctx, int32_t *inout_value)
Definition persistence.h:234
Definition persistence.h:91
void * ctx
Definition persistence.h:95
anj_persistence_write_cb_t * write
Definition persistence.h:94
anj_persistence_direction_t direction
Definition persistence.h:92
anj_persistence_read_cb_t * read
Definition persistence.h:93