XMMS2
xmmsv_list.h
Go to the documentation of this file.
1 /* XMMS2 - X Music Multiplexer System
2  * Copyright (C) 2003-2011 XMMS2 Team
3  *
4  * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!!
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  */
16 
17 
18 #ifndef __XMMSV_LIST_H__
19 #define __XMMSV_LIST_H__
20 
21 #include "xmmsc/xmmsv_general.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /**
28  * @defgroup ListType Lists
29  * @ingroup ValueType
30  * @{
31  */
32 
33 xmmsv_t *xmmsv_new_list (void);
34 
35 int xmmsv_list_get (xmmsv_t *listv, int pos, xmmsv_t **val);
36 int xmmsv_list_set (xmmsv_t *listv, int pos, xmmsv_t *val);
37 int xmmsv_list_append (xmmsv_t *listv, xmmsv_t *val);
38 int xmmsv_list_insert (xmmsv_t *listv, int pos, xmmsv_t *val);
39 int xmmsv_list_remove (xmmsv_t *listv, int pos);
40 int xmmsv_list_move (xmmsv_t *listv, int old_pos, int new_pos);
41 int xmmsv_list_clear (xmmsv_t *listv);
42 int xmmsv_list_get_size (xmmsv_t *listv);
44 
45 int xmmsv_list_get_string (xmmsv_t *v, int pos, const char **val);
46 int xmmsv_list_get_int (xmmsv_t *v, int pos, int32_t *val);
47 int xmmsv_list_get_coll (xmmsv_t *v, int pos, xmmsv_coll_t **val);
48 
49 int xmmsv_list_set_string (xmmsv_t *v, int pos, const char *val);
50 int xmmsv_list_set_int (xmmsv_t *v, int pos, int32_t val);
51 int xmmsv_list_set_coll (xmmsv_t *v, int pos, xmmsv_coll_t *val);
52 
53 int xmmsv_list_insert_string (xmmsv_t *v, int pos, const char *val);
54 int xmmsv_list_insert_int (xmmsv_t *v, int pos, int32_t val);
55 int xmmsv_list_insert_coll (xmmsv_t *v, int pos, xmmsv_coll_t *val);
56 
57 int xmmsv_list_append_string (xmmsv_t *v, const char *val);
58 int xmmsv_list_append_int (xmmsv_t *v, int32_t val);
60 
61 /**
62  * @defgroup ListIterType Iteration
63  * @{
64  */
65 
66 typedef void (*xmmsv_list_foreach_func) (xmmsv_t *value, void *user_data);
67 int xmmsv_list_foreach (xmmsv_t *listv, xmmsv_list_foreach_func func, void* user_data);
68 
69 typedef struct xmmsv_list_iter_St xmmsv_list_iter_t;
70 int xmmsv_get_list_iter (const xmmsv_t *val, xmmsv_list_iter_t **it);
72 
79 int xmmsv_list_iter_seek (xmmsv_list_iter_t *it, int pos);
82 
85 
86 int xmmsv_list_iter_entry_string (xmmsv_list_iter_t *it, const char **val);
87 int xmmsv_list_iter_entry_int (xmmsv_list_iter_t *it, int32_t *val);
89 
90 int xmmsv_list_iter_insert_string (xmmsv_list_iter_t *it, const char *val);
91 int xmmsv_list_iter_insert_int (xmmsv_list_iter_t *it, int32_t val);
93 /** @} */
94 
95 /** @} */
96 
97 #ifdef __cplusplus
98 }
99 #endif
100 
101 #endif
void xmmsv_list_iter_first(xmmsv_list_iter_t *it)
Rewind the iterator to the start of the list.
Definition: value.c:1523
int xmmsv_list_insert_int(xmmsv_t *v, int pos, int32_t val)
struct xmmsv_list_iter_St xmmsv_list_iter_t
Definition: xmmsv_list.h:69
int xmmsv_list_insert_coll(xmmsv_t *v, int pos, xmmsv_coll_t *val)
int xmmsv_list_iter_insert_string(xmmsv_list_iter_t *it, const char *val)
int xmmsv_list_append(xmmsv_t *listv, xmmsv_t *val)
Append an element to the end of the list xmmsv_t.
Definition: value.c:1340
int xmmsv_list_clear(xmmsv_t *listv)
Empty the list from all its elements.
Definition: value.c:1356
int xmmsv_list_insert_string(xmmsv_t *v, int pos, const char *val)
int xmmsv_list_iter_remove(xmmsv_list_iter_t *it)
Remove the element in the list at the position pointed at by the iterator.
Definition: value.c:1652
struct xmmsv_St xmmsv_t
Definition: xmmsv_general.h:48
int xmmsv_list_iter_entry_coll(xmmsv_list_iter_t *it, xmmsv_coll_t **val)
int xmmsv_list_get_int(xmmsv_t *v, int pos, int32_t *val)
int xmmsv_list_append_string(xmmsv_t *v, const char *val)
int xmmsv_list_set_string(xmmsv_t *v, int pos, const char *val)
int xmmsv_list_iter_tell(const xmmsv_list_iter_t *it)
Tell the position of the iterator.
Definition: value.c:1606
int xmmsv_get_list_iter(const xmmsv_t *val, xmmsv_list_iter_t **it)
Retrieves a list iterator from a list xmmsv_t.
Definition: value.c:926
int xmmsv_list_append_int(xmmsv_t *v, int32_t val)
int xmmsv_list_restrict_type(xmmsv_t *listv, xmmsv_type_t type)
Definition: value.c:1413
int xmmsv_list_append_coll(xmmsv_t *v, xmmsv_coll_t *val)
int xmmsv_list_move(xmmsv_t *listv, int old_pos, int new_pos)
Move the element from position #old to position #new.
Definition: value.c:1323
void xmmsv_list_iter_next(xmmsv_list_iter_t *it)
Advance the iterator to the next element in the list.
Definition: value.c:1553
xmmsv_t * xmmsv_new_list(void)
Allocates a new list xmmsv_t.
Definition: value.c:250
void xmmsv_list_iter_explicit_destroy(xmmsv_list_iter_t *it)
Explicitly free list iterator.
Definition: value.c:1478
struct xmmsv_coll_St xmmsv_coll_t
Definition: xmmsv_coll.h:28
int xmmsv_list_get(xmmsv_t *listv, int pos, xmmsv_t **val)
Get the element at the given position in the list xmmsv_t.
Definition: value.c:1218
void xmmsv_list_iter_prev(xmmsv_list_iter_t *it)
Move the iterator to the previous element in the list.
Definition: value.c:1568
int xmmsv_list_iter_seek(xmmsv_list_iter_t *it, int pos)
Move the iterator to the n-th element in the list.
Definition: value.c:1587
xmmsv_type_t
Definition: xmmsv_general.h:35
int xmmsv_list_remove(xmmsv_t *listv, int pos)
Remove the element at the given position from the list xmmsv_t.
Definition: value.c:1300
int xmmsv_list_get_size(xmmsv_t *listv)
Return the size of the list.
Definition: value.c:1403
int xmmsv_list_set_coll(xmmsv_t *v, int pos, xmmsv_coll_t *val)
void xmmsv_list_iter_last(xmmsv_list_iter_t *it)
Move the iterator to end of the list.
Definition: value.c:1536
int xmmsv_list_set(xmmsv_t *listv, int pos, xmmsv_t *val)
Set the element at the given position in the list xmmsv_t.
Definition: value.c:1249
int xmmsv_list_get_string(xmmsv_t *v, int pos, const char **val)
int xmmsv_list_iter_insert_coll(xmmsv_list_iter_t *it, xmmsv_coll_t *val)
int xmmsv_list_iter_entry_string(xmmsv_list_iter_t *it, const char **val)
int xmmsv_list_iter_valid(xmmsv_list_iter_t *it)
Check whether the iterator is valid and points to a valid element.
Definition: value.c:1512
int xmmsv_list_iter_insert(xmmsv_list_iter_t *it, xmmsv_t *val)
Insert an element in the list at the position pointed at by the iterator.
Definition: value.c:1636
int xmmsv_list_iter_insert_int(xmmsv_list_iter_t *it, int32_t val)
int xmmsv_list_insert(xmmsv_t *listv, int pos, xmmsv_t *val)
Insert an element at the given position in the list xmmsv_t.
Definition: value.c:1282
int xmmsv_list_iter_entry(xmmsv_list_iter_t *it, xmmsv_t **val)
Get the element currently pointed at by the iterator.
Definition: value.c:1495
int xmmsv_list_set_int(xmmsv_t *v, int pos, int32_t val)
void(* xmmsv_list_foreach_func)(xmmsv_t *value, void *user_data)
Definition: xmmsv_list.h:66
int xmmsv_list_iter_entry_int(xmmsv_list_iter_t *it, int32_t *val)
int xmmsv_list_get_coll(xmmsv_t *v, int pos, xmmsv_coll_t **val)
int xmmsv_list_foreach(xmmsv_t *listv, xmmsv_list_foreach_func func, void *user_data)
Apply a function to each element in the list, in sequential order.
Definition: value.c:1375
xmmsv_t * xmmsv_list_iter_get_parent(const xmmsv_list_iter_t *it)
Return the parent xmmsv_t of an iterator.
Definition: value.c:1620