Annotation of gpl/axl/src/axl_list.h, revision 1.1.1.1
1.1 misho 1: /*
2: * LibAxl: Another XML library
3: * Copyright (C) 2006 Advanced Software Production Line, S.L.
4: *
5: * This program is free software; you can redistribute it and/or
6: * modify it under the terms of the GNU Lesser General Public License
7: * as published by the Free Software Foundation; either version 2.1 of
8: * the License, or (at your option) any later version.
9: *
10: * This program is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: * GNU Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this program; if not, write to the Free
17: * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18: * 02111-1307 USA
19: *
20: * You may find a copy of the license under this software is released
21: * at COPYING file. This is LGPL software: you are welcome to
22: * develop proprietary applications using this library without any
23: * royalty or fee but returning back any change, improvement or
24: * addition in the form of source code, project image, documentation
25: * patches, etc.
26: *
27: * For commercial support on build XML enabled solutions contact us:
28: *
29: * Postal address:
30: * Advanced Software Production Line, S.L.
31: * Edificio Alius A, Oficina 102,
32: * C/ Antonio Suarez Nº 10,
33: * Alcalá de Henares 28802 Madrid
34: * Spain
35: *
36: * Email address:
37: * info@aspl.es - http://www.aspl.es/xml
38: */
39: #ifndef __AXL_LIST_H__
40: #define __AXL_LIST_H__
41:
42: #include <axl_decl.h>
43:
44: BEGIN_C_DECLS
45:
46: axlList * axl_list_new (axlEqualFunc are_equal, axlDestroyFunc destroy_data);
47:
48: void axl_list_set_destroy_func (axlList * list, axlDestroyFunc destroy_func);
49:
50: int axl_list_equal_string (axlPointer a, axlPointer b);
51:
52: int axl_list_equal_int (axlPointer a, axlPointer b);
53:
54: int axl_list_always_return_1 (axlPointer a, axlPointer b);
55:
56: axlList * axl_list_copy (axlList * list, axlDuplicateFunc func);
57:
58: void axl_list_add (axlList * list, axlPointer pointer);
59:
60: void axl_list_add_at (axlList * list, axlPointer pointer, int position);
61:
62: void axl_list_prepend (axlList * list, axlPointer pointer);
63:
64: void axl_list_append (axlList * list, axlPointer pointer);
65:
66: void axl_list_remove (axlList * list, axlPointer pointer);
67:
68: void axl_list_remove_ptr (axlList * list, axlPointer pointer);
69:
70: void axl_list_remove_at (axlList * list, int position);
71:
72: void axl_list_unlink (axlList * list, axlPointer pointer);
73:
74: void axl_list_unlink_ptr (axlList * list, axlPointer pointer);
75:
76: void axl_list_unlink_at (axlList * list, int position);
77:
78: void axl_list_remove_first (axlList * list);
79:
80: void axl_list_unlink_first (axlList * list);
81:
82: void axl_list_remove_last (axlList * list);
83:
84: void axl_list_unlink_last (axlList * list);
85:
86: axl_bool axl_list_exists (axlList * list, axlPointer pointer);
87:
88: axl_bool axl_list_exists_at (axlList * list, axlPointer pointer, int position);
89:
90: axl_bool axl_list_is_empty (axlList * list);
91:
92: axlPointer axl_list_get_first (axlList * list);
93:
94: axlPointer axl_list_get_last (axlList * list);
95:
96: axlPointer axl_list_get_nth (axlList * list, int position);
97:
98: axlPointer axl_list_lookup (axlList * list, axlLookupFunc func, axlPointer data);
99:
100: axl_bool axl_list_find_string (axlPointer element, axlPointer data);
101:
102: int axl_list_length (axlList * list);
103:
104: void axl_list_free (axlList * list);
105:
106: /* cursor interface */
107: axlListCursor * axl_list_cursor_new (axlList * list);
108:
109: void axl_list_cursor_first (axlListCursor * cursor);
110:
111: void axl_list_cursor_last (axlListCursor * cursor);
112:
113: void axl_list_cursor_next (axlListCursor * cursor);
114:
115: void axl_list_cursor_previous (axlListCursor * cursor);
116:
117: axl_bool axl_list_cursor_has_next (axlListCursor * cursor);
118:
119: axl_bool axl_list_cursor_has_previous (axlListCursor * cursor);
120:
121: axl_bool axl_list_cursor_has_item (axlListCursor * cursor);
122:
123: void axl_list_cursor_unlink (axlListCursor * cursor);
124:
125: void axl_list_cursor_remove (axlListCursor * cursor);
126:
127: axlPointer axl_list_cursor_get (axlListCursor * cursor);
128:
129: axlList * axl_list_cursor_list (axlListCursor * cursor);
130:
131: void axl_list_cursor_free (axlListCursor * cursor);
132:
133: END_C_DECLS
134:
135: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>