no-OS
no_os_list.h
Go to the documentation of this file.
1 /***************************************************************************/
84 #ifndef _NO_OS_LIST_H_
85 #define _NO_OS_LIST_H_
86 
87 /******************************************************************************/
88 /***************************** Include Files **********************************/
89 /******************************************************************************/
90 
91 #include <stdint.h>
92 #include <stdbool.h>
93 
94 /******************************************************************************/
95 /*************************** Types Declarations *******************************/
96 /******************************************************************************/
97 
111 
116 struct no_os_iterator;
117 
130 typedef int32_t (*f_cmp)(void *data1, void *data2);
131 
151 typedef int32_t (*f_add)(struct no_os_list_desc *list_desc, void *data);
152 
161 typedef int32_t (*f_edit)(struct no_os_list_desc *list_desc, void *new_data);
162 
174 typedef int32_t (*f_read)(struct no_os_list_desc *list_desc, void **data);
175 
185 typedef int32_t (*f_get)(struct no_os_list_desc *list_desc, void **data);
186 
226 };
227 
240  void *priv_desc;
241 };
242 
243 /******************************************************************************/
244 /************************ Functions Declarations ******************************/
245 /******************************************************************************/
246 
247 int32_t no_os_list_init(struct no_os_list_desc **list_desc,
248  enum no_os_adapter_type type,
249  f_cmp comparator);
250 int32_t no_os_list_remove(struct no_os_list_desc *list_desc);
251 int32_t no_os_list_get_size(struct no_os_list_desc *list_desc,
252  uint32_t *out_size);
253 
260 int32_t no_os_iterator_init(struct no_os_iterator **iter,
261  struct no_os_list_desc *list_desc,
262  bool start);
263 int32_t no_os_iterator_remove(struct no_os_iterator *iter);
264 int32_t no_os_iterator_move(struct no_os_iterator *iter, int32_t steps);
265 int32_t no_os_iterator_move_to_idx(struct no_os_iterator *iter, int32_t idx);
266 int32_t no_os_iterator_find(struct no_os_iterator *iter, void *cmp_data);
267 int32_t no_os_iterator_insert(struct no_os_iterator *iter, void *data,
268  bool after);
269 int32_t no_os_iterator_edit(struct no_os_iterator *iter, void *new_data);
270 int32_t no_os_iterator_read(struct no_os_iterator *iter, void **data);
271 int32_t no_os_iterator_get(struct no_os_iterator *iter, void **data);
279 int32_t no_os_list_add_first(struct no_os_list_desc *list_desc, void *data);
280 int32_t no_os_list_edit_first(struct no_os_list_desc *list_desc,
281  void *new_data);
282 int32_t no_os_list_read_first(struct no_os_list_desc *list_desc, void **data);
283 int32_t no_os_list_get_first(struct no_os_list_desc *list_desc, void **data);
284 
285 int32_t no_os_list_add_last(struct no_os_list_desc *list_desc, void *data);
286 int32_t no_os_list_edit_last(struct no_os_list_desc *list_desc, void *new_data);
287 int32_t no_os_list_read_last(struct no_os_list_desc *list_desc, void **data);
288 int32_t no_os_list_get_last(struct no_os_list_desc *list_desc, void **data);
296 int32_t no_os_list_add_idx(struct no_os_list_desc *list_desc, void *data,
297  uint32_t idx);
298 int32_t no_os_list_edit_idx(struct no_os_list_desc *list_desc, void *new_data,
299  uint32_t idx);
300 int32_t no_os_list_read_idx(struct no_os_list_desc *list_desc, void **data,
301  uint32_t idx);
302 int32_t no_os_list_get_idx(struct no_os_list_desc *list_desc, void **data,
303  uint32_t idx);
312 int32_t no_os_list_add_find(struct no_os_list_desc *list_desc, void *data);
313 int32_t no_os_list_edit_find(struct no_os_list_desc *list_desc, void *new_data,
314  void *cmp_data);
315 int32_t no_os_list_read_find(struct no_os_list_desc *list_desc, void **data,
316  void *cmp_data);
317 int32_t no_os_list_get_find(struct no_os_list_desc *list_desc, void **data,
318  void *cmp_data);
321 #endif // _NO_OS_LIST_H_
no_os_list_read_last
int32_t no_os_list_read_last(struct no_os_list_desc *list_desc, void **data)
no_os_list_desc
Structure storing the list and function wrapper for usual list types.
Definition: no_os_list.h:228
no_os_list_get_last
int32_t no_os_list_get_last(struct no_os_list_desc *list_desc, void **data)
no_os_list_read_find
int32_t no_os_list_read_find(struct no_os_list_desc *list_desc, void **data, void *cmp_data)
f_read
int32_t(* f_read)(struct no_os_list_desc *list_desc, void **data)
Read an element from the list.
Definition: no_os_list.h:174
no_os_iterator_get
int32_t no_os_iterator_get(struct no_os_iterator *iter, void **data)
no_os_list_get_size
int32_t no_os_list_get_size(struct no_os_list_desc *list_desc, uint32_t *out_size)
f_edit
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:161
NO_OS_LIST_DEFAULT
@ NO_OS_LIST_DEFAULT
Definition: no_os_list.h:195
no_os_list_get_find
int32_t no_os_list_get_find(struct no_os_list_desc *list_desc, void **data, void *cmp_data)
no_os_list_add_find
int32_t no_os_list_add_find(struct no_os_list_desc *list_desc, void *data)
no_os_list_get_first
int32_t no_os_list_get_first(struct no_os_list_desc *list_desc, void **data)
no_os_iterator_insert
int32_t no_os_iterator_insert(struct no_os_iterator *iter, void *data, bool after)
no_os_list_desc::push
f_add push
Definition: no_os_list.h:230
no_os_list_add_idx
int32_t no_os_list_add_idx(struct no_os_list_desc *list_desc, void *data, uint32_t idx)
no_os_list_get_idx
int32_t no_os_list_get_idx(struct no_os_list_desc *list_desc, void **data, uint32_t idx)
no_os_list_read_idx
int32_t no_os_list_read_idx(struct no_os_list_desc *list_desc, void **data, uint32_t idx)
NO_OS_LIST_PRIORITY_LIST
@ NO_OS_LIST_PRIORITY_LIST
Definition: no_os_list.h:225
no_os_list_desc::back
f_read back
Definition: no_os_list.h:236
NO_OS_LIST_STACK
@ NO_OS_LIST_STACK
Definition: no_os_list.h:215
f_cmp
int32_t(* f_cmp)(void *data1, void *data2)
Prototype of the compare function.
Definition: no_os_list.h:130
no_os_iterator_move
int32_t no_os_iterator_move(struct no_os_iterator *iter, int32_t steps)
no_os_list_desc::priv_desc
void * priv_desc
Definition: no_os_list.h:240
no_os_list_add_first
int32_t no_os_list_add_first(struct no_os_list_desc *list_desc, void *data)
no_os_list_edit_find
int32_t no_os_list_edit_find(struct no_os_list_desc *list_desc, void *new_data, void *cmp_data)
no_os_list_remove
int32_t no_os_list_remove(struct no_os_list_desc *list_desc)
no_os_list_read_first
int32_t no_os_list_read_first(struct no_os_list_desc *list_desc, void **data)
no_os_adapter_type
no_os_adapter_type
Selects functionalities for functions in no_os_list_desc.
Definition: no_os_list.h:193
no_os_list_desc::pop
f_get pop
Definition: no_os_list.h:232
no_os_list_desc::top_next
f_read top_next
Definition: no_os_list.h:234
no_os_iterator_remove
int32_t no_os_iterator_remove(struct no_os_iterator *iter)
no_os_iterator_move_to_idx
int32_t no_os_iterator_move_to_idx(struct no_os_iterator *iter, int32_t idx)
no_os_list_desc::swap
f_edit swap
Definition: no_os_list.h:238
no_os_iterator_read
int32_t no_os_iterator_read(struct no_os_iterator *iter, void **data)
no_os_iterator_edit
int32_t no_os_iterator_edit(struct no_os_iterator *iter, void *new_data)
no_os_list_edit_first
int32_t no_os_list_edit_first(struct no_os_list_desc *list_desc, void *new_data)
no_os_list_edit_last
int32_t no_os_list_edit_last(struct no_os_list_desc *list_desc, void *new_data)
no_os_list_edit_idx
int32_t no_os_list_edit_idx(struct no_os_list_desc *list_desc, void *new_data, uint32_t idx)
f_add
int32_t(* f_add)(struct no_os_list_desc *list_desc, void *data)
Add an element in the list.
Definition: no_os_list.h:151
NO_OS_LIST_QUEUE
@ NO_OS_LIST_QUEUE
Definition: no_os_list.h:205
no_os_list_add_last
int32_t no_os_list_add_last(struct no_os_list_desc *list_desc, void *data)
no_os_list_init
int32_t no_os_list_init(struct no_os_list_desc **list_desc, enum no_os_adapter_type type, f_cmp comparator)
no_os_iterator_init
int32_t no_os_iterator_init(struct no_os_iterator **iter, struct no_os_list_desc *list_desc, bool start)
no_os_iterator_find
int32_t no_os_iterator_find(struct no_os_iterator *iter, void *cmp_data)
f_get
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:185