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
24extern "C" {
25#endif
26
27/**
28 * @defgroup ListType Lists
29 * @ingroup ValueType
30 * @{
31 */
32
34
35int xmmsv_list_get (xmmsv_t *listv, int pos, xmmsv_t **val);
36int xmmsv_list_set (xmmsv_t *listv, int pos, xmmsv_t *val);
37int xmmsv_list_append (xmmsv_t *listv, xmmsv_t *val);
38int xmmsv_list_insert (xmmsv_t *listv, int pos, xmmsv_t *val);
39int xmmsv_list_remove (xmmsv_t *listv, int pos);
40int xmmsv_list_move (xmmsv_t *listv, int old_pos, int new_pos);
41int xmmsv_list_clear (xmmsv_t *listv);
42int xmmsv_list_get_size (xmmsv_t *listv);
44
45int xmmsv_list_get_string (xmmsv_t *v, int pos, const char **val);
46int xmmsv_list_get_int (xmmsv_t *v, int pos, int32_t *val);
47int xmmsv_list_get_coll (xmmsv_t *v, int pos, xmmsv_coll_t **val);
48
49int xmmsv_list_set_string (xmmsv_t *v, int pos, const char *val);
50int xmmsv_list_set_int (xmmsv_t *v, int pos, int32_t val);
52
53int xmmsv_list_insert_string (xmmsv_t *v, int pos, const char *val);
54int xmmsv_list_insert_int (xmmsv_t *v, int pos, int32_t val);
56
57int xmmsv_list_append_string (xmmsv_t *v, const char *val);
58int xmmsv_list_append_int (xmmsv_t *v, int32_t val);
60
61/**
62 * @defgroup ListIterType Iteration
63 * @{
64 */
65
66typedef void (*xmmsv_list_foreach_func) (xmmsv_t *value, void *user_data);
67int xmmsv_list_foreach (xmmsv_t *listv, xmmsv_list_foreach_func func, void* user_data);
68
69typedef struct xmmsv_list_iter_St xmmsv_list_iter_t;
70int xmmsv_get_list_iter (const xmmsv_t *val, xmmsv_list_iter_t **it);
72
82
85
89
93/** @} */
94
95/** @} */
96
97#ifdef __cplusplus
98}
99#endif
100
101#endif
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
void xmmsv_list_iter_next(xmmsv_list_iter_t *it)
Advance the iterator to the next element in the list.
Definition: value.c:1553
int xmmsv_list_iter_entry_string(xmmsv_list_iter_t *it, 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_list_iter_entry_coll(xmmsv_list_iter_t *it, 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
struct xmmsv_list_iter_St xmmsv_list_iter_t
Definition: xmmsv_list.h:69
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_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
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
int xmmsv_list_iter_insert_coll(xmmsv_list_iter_t *it, xmmsv_coll_t *val)
int xmmsv_list_iter_insert_string(xmmsv_list_iter_t *it, const char *val)
void(* xmmsv_list_foreach_func)(xmmsv_t *value, void *user_data)
Definition: xmmsv_list.h:66
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
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
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_iter_insert_int(xmmsv_list_iter_t *it, int32_t val)
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
void xmmsv_list_iter_explicit_destroy(xmmsv_list_iter_t *it)
Explicitly free list iterator.
Definition: value.c:1478
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_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_entry_int(xmmsv_list_iter_t *it, int32_t *val)
int xmmsv_list_set_coll(xmmsv_t *v, int pos, xmmsv_coll_t *val)
int xmmsv_list_get_string(xmmsv_t *v, int pos, const char **val)
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
xmmsv_t * xmmsv_new_list(void)
Allocates a new list xmmsv_t.
Definition: value.c:250
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_append_int(xmmsv_t *v, int32_t val)
int xmmsv_list_get_int(xmmsv_t *v, int pos, int32_t *val)
int xmmsv_list_restrict_type(xmmsv_t *listv, xmmsv_type_t type)
Definition: value.c:1413
int xmmsv_list_get_size(xmmsv_t *listv)
Return the size of the list.
Definition: value.c:1403
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
int xmmsv_list_set_int(xmmsv_t *v, int pos, int32_t val)
int xmmsv_list_clear(xmmsv_t *listv)
Empty the list from all its elements.
Definition: value.c:1356
int xmmsv_list_append_coll(xmmsv_t *v, xmmsv_coll_t *val)
int xmmsv_list_set_string(xmmsv_t *v, int pos, const char *val)
int xmmsv_list_append_string(xmmsv_t *v, const char *val)
int xmmsv_list_insert_int(xmmsv_t *v, int pos, int32_t val)
int xmmsv_list_get_coll(xmmsv_t *v, int pos, xmmsv_coll_t **val)
int xmmsv_list_insert_coll(xmmsv_t *v, int pos, xmmsv_coll_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_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_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_insert_string(xmmsv_t *v, int pos, const char *val)
struct xmmsv_St xmmsv_t
Definition: xmmsv_general.h:48
xmmsv_type_t
Definition: xmmsv_general.h:35
struct xmmsv_coll_St xmmsv_coll_t
Definition: xmmsv_coll.h:28