wlmaker
Loading...
Searching...
No Matches
model.h
Go to the documentation of this file.
1/* ========================================================================= */
20#ifndef __WLMCFG_MODEL_H__
21#define __WLMCFG_MODEL_H__
22
23#include <libbase/libbase.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif // __cplusplus
28
37
39typedef enum {
40 WLMCFG_STRING,
41 WLMCFG_DICT,
42 WLMCFG_ARRAY
44
55
64void wlmcfg_object_unref(wlmcfg_object_t *object_ptr);
65
73wlmcfg_string_t *wlmcfg_string_create(const char *value_ptr);
74
79
87const char *wlmcfg_string_value(const wlmcfg_string_t *string_ptr);
88
95
100
112bool wlmcfg_dict_add(
113 wlmcfg_dict_t *dict_ptr,
114 const char *key_ptr,
115 wlmcfg_object_t *object_ptr);
116
119 wlmcfg_dict_t *dict_ptr,
120 const char *key_ptr);
121
133 wlmcfg_dict_t *dict_ptr,
134 bool (*fn)(const char *key_ptr,
135 wlmcfg_object_t *object_ptr,
136 void *userdata_ptr),
137 void *userdata_ptr);
138
145
150
161 wlmcfg_array_t *array_ptr,
162 wlmcfg_object_t *object_ptr);
163
165size_t wlmcfg_array_size(wlmcfg_array_t *array_ptr);
166
177 wlmcfg_array_t *array_ptr,
178 size_t index);
179
180/* -- Static & inlined methods: Convenience wrappers ----------------------- */
181
183static inline void wlmcfg_string_unref(wlmcfg_string_t *string_ptr)
184{
186}
187
194static inline void wlmcfg_dict_unref(wlmcfg_dict_t *dict_ptr) {
196}
197
200 wlmcfg_dict_t *dict_ptr,
201 const char *key_ptr) {
202 return wlmcfg_dict_from_object(wlmcfg_dict_get(dict_ptr, key_ptr));
203}
204
207 wlmcfg_dict_t *dict_ptr,
208 const char *key_ptr) {
209 return wlmcfg_array_from_object(wlmcfg_dict_get(dict_ptr, key_ptr));
210}
212static inline const char *wlmcfg_dict_get_string_value(
213 wlmcfg_dict_t *dict_ptr,
214 const char *key_ptr) {
215 return wlmcfg_string_value(
216 wlmcfg_string_from_object(wlmcfg_dict_get(dict_ptr, key_ptr)));
217}
218
220static inline void wlmcfg_array_unref(wlmcfg_array_t *array_ptr) {
222}
223
225static inline const char *wlmcfg_array_string_value_at(
226 wlmcfg_array_t *array_ptr, size_t idx) {
227 return wlmcfg_string_value(
229}
230
232extern const bs_test_case_t wlmcfg_model_test_cases[];
233
234#ifdef __cplusplus
235} // extern "C"
236#endif // __cplusplus
237
238#endif /* __WLMCFG_MODEL_H__ */
239/* == End of model.h ================================================== */
wlmcfg_object_t * wlmcfg_object_ref(wlmcfg_object_t *object_ptr)
Definition model.c:95
const char * wlmcfg_string_value(const wlmcfg_string_t *string_ptr)
Definition model.c:137
static wlmcfg_dict_t * wlmcfg_dict_get_dict(wlmcfg_dict_t *dict_ptr, const char *key_ptr)
Definition model.h:199
wlmcfg_object_t * wlmcfg_object_from_array(wlmcfg_array_t *array_ptr)
Definition model.c:293
wlmcfg_array_t * wlmcfg_array_from_object(wlmcfg_object_t *object_ptr)
Definition model.c:300
static void wlmcfg_array_unref(wlmcfg_array_t *array_ptr)
Definition model.h:220
bool wlmcfg_dict_foreach(wlmcfg_dict_t *dict_ptr, bool(*fn)(const char *key_ptr, wlmcfg_object_t *object_ptr, void *userdata_ptr), void *userdata_ptr)
Definition model.c:226
wlmcfg_dict_t * wlmcfg_dict_from_object(wlmcfg_object_t *object_ptr)
Definition model.c:219
static const char * wlmcfg_array_string_value_at(wlmcfg_array_t *array_ptr, size_t idx)
Definition model.h:225
bool wlmcfg_array_push_back(wlmcfg_array_t *array_ptr, wlmcfg_object_t *object_ptr)
Definition model.c:268
wlmcfg_string_t * wlmcfg_string_create(const char *value_ptr)
Definition model.c:114
static wlmcfg_array_t * wlmcfg_dict_get_array(wlmcfg_dict_t *dict_ptr, const char *key_ptr)
Definition model.h:206
static void wlmcfg_dict_unref(wlmcfg_dict_t *dict_ptr)
Definition model.h:194
wlmcfg_object_t * wlmcfg_object_from_string(wlmcfg_string_t *string_ptr)
Definition model.c:143
bool wlmcfg_dict_add(wlmcfg_dict_t *dict_ptr, const char *key_ptr, wlmcfg_object_t *object_ptr)
Definition model.c:181
static void wlmcfg_string_unref(wlmcfg_string_t *string_ptr)
Definition model.h:183
wlmcfg_object_t * wlmcfg_object_from_dict(wlmcfg_dict_t *dict_ptr)
Definition model.c:212
size_t wlmcfg_array_size(wlmcfg_array_t *array_ptr)
Definition model.c:279
wlmcfg_array_t * wlmcfg_array_create(void)
Definition model.c:248
static wlmcfg_dict_t * wlmcfg_dict_ref(wlmcfg_dict_t *dict_ptr)
Definition model.h:189
wlmcfg_object_t * wlmcfg_dict_get(wlmcfg_dict_t *dict_ptr, const char *key_ptr)
Definition model.c:197
wlmcfg_object_t * wlmcfg_array_at(wlmcfg_array_t *array_ptr, size_t index)
Definition model.c:285
wlmcfg_type_t
Definition model.h:39
void wlmcfg_object_unref(wlmcfg_object_t *object_ptr)
Definition model.c:102
const bs_test_case_t wlmcfg_model_test_cases[]
Definition model.c:460
static const char * wlmcfg_dict_get_string_value(wlmcfg_dict_t *dict_ptr, const char *key_ptr)
Definition model.h:212
wlmcfg_string_t * wlmcfg_string_from_object(wlmcfg_object_t *object_ptr)
Definition model.c:150
wlmcfg_dict_t * wlmcfg_dict_create(void)
Definition model.c:157
Definition model.c:64
Definition model.c:46
Definition model.c:28
Definition model.c:38