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>