Annotation of win32/gnome/gnome-xml/include/libxml/list.h, revision 1.1

1.1     ! paf         1: /*
        !             2:  * list.h: lists interfaces
        !             3:  *
        !             4:  * Copyright (C) 2000 Gary Pennington and Daniel Veillard.
        !             5:  *
        !             6:  * Permission to use, copy, modify, and distribute this software for any
        !             7:  * purpose with or without fee is hereby granted, provided that the above
        !             8:  * copyright notice and this permission notice appear in all copies.
        !             9:  *
        !            10:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            11:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            12:  * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
        !            13:  * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
        !            14:  *
        !            15:  * Author: Gary.Pennington@uk.sun.com
        !            16:  */
        !            17: 
        !            18: #ifndef __XML_LINK_INCLUDE__
        !            19: #define __XML_LINK_INCLUDE__
        !            20: 
        !            21: #ifdef __cplusplus
        !            22: extern "C" {
        !            23: #endif
        !            24: 
        !            25: typedef struct _xmlLink xmlLink;
        !            26: typedef xmlLink *xmlLinkPtr;
        !            27: 
        !            28: typedef struct _xmlList xmlList;
        !            29: typedef xmlList *xmlListPtr;
        !            30: 
        !            31: /**
        !            32:  * xmlListDeallocator:
        !            33:  * @lk:  the data to deallocate
        !            34:  *
        !            35:  * Callback function used to free data from a list.
        !            36:  */
        !            37: typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
        !            38: /**
        !            39:  * xmlListDataCompare:
        !            40:  * @data0: the first data
        !            41:  * @data1: the second data
        !            42:  *
        !            43:  * Callback function used to compare 2 data.
        !            44:  *
        !            45:  * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
        !            46:  */
        !            47: typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
        !            48: /**
        !            49:  * xmlListWalker:
        !            50:  * @data: the data found in the list
        !            51:  * @user: extra user provided data to the walker
        !            52:  *
        !            53:  * Callback function used when walking a list with xmlListWalk().
        !            54:  *
        !            55:  * Returns 0 to stop walking the list, 1 otherwise.
        !            56:  */
        !            57: typedef int (*xmlListWalker) (const void *data, const void *user);
        !            58: 
        !            59: /* Creation/Deletion */
        !            60: xmlListPtr     xmlListCreate           (xmlListDeallocator deallocator,
        !            61:                                         xmlListDataCompare compare);
        !            62: void           xmlListDelete           (xmlListPtr l);
        !            63: 
        !            64: /* Basic Operators */
        !            65: void *         xmlListSearch           (xmlListPtr l,
        !            66:                                         void *data);
        !            67: void *         xmlListReverseSearch    (xmlListPtr l,
        !            68:                                         void *data);
        !            69: int            xmlListInsert           (xmlListPtr l,
        !            70:                                         void *data) ;
        !            71: int            xmlListAppend           (xmlListPtr l,
        !            72:                                         void *data) ;
        !            73: int            xmlListRemoveFirst      (xmlListPtr l,
        !            74:                                         void *data);
        !            75: int            xmlListRemoveLast       (xmlListPtr l,
        !            76:                                         void *data);
        !            77: int            xmlListRemoveAll        (xmlListPtr l,
        !            78:                                         void *data);
        !            79: void           xmlListClear            (xmlListPtr l);
        !            80: int            xmlListEmpty            (xmlListPtr l);
        !            81: xmlLinkPtr     xmlListFront            (xmlListPtr l);
        !            82: xmlLinkPtr     xmlListEnd              (xmlListPtr l);
        !            83: int            xmlListSize             (xmlListPtr l);
        !            84: 
        !            85: void           xmlListPopFront         (xmlListPtr l);
        !            86: void           xmlListPopBack          (xmlListPtr l);
        !            87: int            xmlListPushFront        (xmlListPtr l,
        !            88:                                         void *data);
        !            89: int            xmlListPushBack         (xmlListPtr l,
        !            90:                                         void *data);
        !            91: 
        !            92: /* Advanced Operators */
        !            93: void           xmlListReverse          (xmlListPtr l);
        !            94: void           xmlListSort             (xmlListPtr l);
        !            95: void           xmlListWalk             (xmlListPtr l,
        !            96:                                         xmlListWalker walker,
        !            97:                                         const void *user);
        !            98: void           xmlListReverseWalk      (xmlListPtr l,
        !            99:                                         xmlListWalker walker,
        !           100:                                         const void *user);
        !           101: void           xmlListMerge            (xmlListPtr l1,
        !           102:                                         xmlListPtr l2);
        !           103: xmlListPtr     xmlListDup              (const xmlListPtr old);
        !           104: int            xmlListCopy             (xmlListPtr cur,
        !           105:                                         const xmlListPtr old);
        !           106: /* Link operators */
        !           107: void *          xmlLinkGetData          (xmlLinkPtr lk);
        !           108: 
        !           109: /* xmlListUnique() */
        !           110: /* xmlListSwap */
        !           111: 
        !           112: #ifdef __cplusplus
        !           113: }
        !           114: #endif
        !           115: 
        !           116: #endif /* __XML_LINK_INCLUDE__ */

E-mail: