no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
no_os_list.h
Go to the documentation of this file.
1/***************************************************************************/
83
84#ifndef _NO_OS_LIST_H_
85#define _NO_OS_LIST_H_
86
87#include <stdint.h>
88#include <stdbool.h>
89
102struct no_os_list_desc;
103
108struct no_os_iterator;
109
122typedef int32_t (*f_cmp)(void *data1, void *data2);
123
132
143typedef int32_t (*f_add)(struct no_os_list_desc *list_desc, void *data);
144
153typedef int32_t (*f_edit)(struct no_os_list_desc *list_desc, void *new_data);
154
165typedef int32_t (*f_read)(struct no_os_list_desc *list_desc, void **data);
166
175typedef int32_t (*f_get)(struct no_os_list_desc *list_desc, void **data);
176
178
217
232
233int32_t no_os_list_init(struct no_os_list_desc **list_desc,
234 enum no_os_adapter_type type,
235 f_cmp comparator);
236int32_t no_os_list_remove(struct no_os_list_desc *list_desc);
237int32_t no_os_list_get_size(struct no_os_list_desc *list_desc,
238 uint32_t *out_size);
239
246int32_t no_os_iterator_init(struct no_os_iterator **iter,
247 struct no_os_list_desc *list_desc,
248 bool start);
249int32_t no_os_iterator_remove(struct no_os_iterator *iter);
250int32_t no_os_iterator_move(struct no_os_iterator *iter, int32_t steps);
251int32_t no_os_iterator_move_to_idx(struct no_os_iterator *iter, int32_t idx);
252int32_t no_os_iterator_find(struct no_os_iterator *iter, void *cmp_data);
253int32_t no_os_iterator_insert(struct no_os_iterator *iter, void *data,
254 bool after);
255int32_t no_os_iterator_edit(struct no_os_iterator *iter, void *new_data);
256int32_t no_os_iterator_read(struct no_os_iterator *iter, void **data);
257int32_t no_os_iterator_get(struct no_os_iterator *iter, void **data);
259
265int32_t no_os_list_add_first(struct no_os_list_desc *list_desc, void *data);
266int32_t no_os_list_edit_first(struct no_os_list_desc *list_desc,
267 void *new_data);
268int32_t no_os_list_read_first(struct no_os_list_desc *list_desc, void **data);
269int32_t no_os_list_get_first(struct no_os_list_desc *list_desc, void **data);
270
271int32_t no_os_list_add_last(struct no_os_list_desc *list_desc, void *data);
272int32_t no_os_list_edit_last(struct no_os_list_desc *list_desc, void *new_data);
273int32_t no_os_list_read_last(struct no_os_list_desc *list_desc, void **data);
274int32_t no_os_list_get_last(struct no_os_list_desc *list_desc, void **data);
276
282int32_t no_os_list_add_idx(struct no_os_list_desc *list_desc, void *data,
283 uint32_t idx);
284int32_t no_os_list_edit_idx(struct no_os_list_desc *list_desc, void *new_data,
285 uint32_t idx);
286int32_t no_os_list_read_idx(struct no_os_list_desc *list_desc, void **data,
287 uint32_t idx);
288int32_t no_os_list_get_idx(struct no_os_list_desc *list_desc, void **data,
289 uint32_t idx);
291
298int32_t no_os_list_add_find(struct no_os_list_desc *list_desc, void *data);
299int32_t no_os_list_edit_find(struct no_os_list_desc *list_desc, void *new_data,
300 void *cmp_data);
301int32_t no_os_list_read_find(struct no_os_list_desc *list_desc, void **data,
302 void *cmp_data);
303int32_t no_os_list_get_find(struct no_os_list_desc *list_desc, void **data,
304 void *cmp_data);
306
307#endif // _NO_OS_LIST_H_
int32_t no_os_iterator_find(struct no_os_iterator *iter, void *cmp_data)
int32_t no_os_list_add_idx(struct no_os_list_desc *list_desc, void *data, uint32_t idx)
int32_t no_os_list_get_first(struct no_os_list_desc *list_desc, void **data)
int32_t no_os_list_get_size(struct no_os_list_desc *list_desc, uint32_t *out_size)
int32_t no_os_list_edit_find(struct no_os_list_desc *list_desc, void *new_data, void *cmp_data)
int32_t no_os_iterator_get(struct no_os_iterator *iter, void **data)
int32_t no_os_list_get_last(struct no_os_list_desc *list_desc, void **data)
int32_t no_os_iterator_read(struct no_os_iterator *iter, void **data)
int32_t no_os_list_edit_idx(struct no_os_list_desc *list_desc, void *new_data, uint32_t idx)
int32_t(* f_add)(struct no_os_list_desc *list_desc, void *data)
Add an element in the list.
Definition no_os_list.h:143
int32_t no_os_list_edit_first(struct no_os_list_desc *list_desc, void *new_data)
int32_t no_os_list_add_last(struct no_os_list_desc *list_desc, void *data)
int32_t(* f_read)(struct no_os_list_desc *list_desc, void **data)
Read an element from the list.
Definition no_os_list.h:165
int32_t no_os_list_remove(struct no_os_list_desc *list_desc)
int32_t(* f_edit)(struct no_os_list_desc *list_desc, void *new_data)
Edit an element in the list. The content is replaced by new_data.
Definition no_os_list.h:153
int32_t(* f_get)(struct no_os_list_desc *list_desc, void **data)
Read and remove an element from the list.
Definition no_os_list.h:175
int32_t no_os_list_get_find(struct no_os_list_desc *list_desc, void **data, void *cmp_data)
int32_t no_os_list_get_idx(struct no_os_list_desc *list_desc, void **data, uint32_t idx)
int32_t no_os_iterator_move(struct no_os_iterator *iter, int32_t steps)
int32_t no_os_iterator_remove(struct no_os_iterator *iter)
int32_t no_os_list_read_first(struct no_os_list_desc *list_desc, void **data)
int32_t no_os_list_add_find(struct no_os_list_desc *list_desc, void *data)
int32_t(* f_cmp)(void *data1, void *data2)
Prototype of the compare function.
Definition no_os_list.h:122
int32_t no_os_list_add_first(struct no_os_list_desc *list_desc, void *data)
int32_t no_os_iterator_insert(struct no_os_iterator *iter, void *data, bool after)
no_os_adapter_type
Selects functionalities for functions in no_os_list_desc.
Definition no_os_list.h:183
@ NO_OS_LIST_STACK
Definition no_os_list.h:205
@ NO_OS_LIST_QUEUE
Definition no_os_list.h:195
@ NO_OS_LIST_DEFAULT
Definition no_os_list.h:185
@ NO_OS_LIST_PRIORITY_LIST
Definition no_os_list.h:215
int32_t no_os_list_read_last(struct no_os_list_desc *list_desc, void **data)
int32_t no_os_list_read_find(struct no_os_list_desc *list_desc, void **data, void *cmp_data)
int32_t no_os_list_edit_last(struct no_os_list_desc *list_desc, void *new_data)
int32_t no_os_list_init(struct no_os_list_desc **list_desc, enum no_os_adapter_type type, f_cmp comparator)
int32_t no_os_iterator_move_to_idx(struct no_os_iterator *iter, int32_t idx)
int32_t no_os_iterator_init(struct no_os_iterator **iter, struct no_os_list_desc *list_desc, bool start)
int32_t no_os_list_read_idx(struct no_os_list_desc *list_desc, void **data, uint32_t idx)
int32_t no_os_iterator_edit(struct no_os_iterator *iter, void *new_data)
Structure storing the list and function wrapper for usual list types.
Definition no_os_list.h:218
f_read top_next
Definition no_os_list.h:224
f_edit swap
Definition no_os_list.h:228
f_add push
Definition no_os_list.h:220
f_get pop
Definition no_os_list.h:222
void * priv_desc
Definition no_os_list.h:230
f_read back
Definition no_os_list.h:226