epoc32/include/stdapis/libxml2/libxml2_list.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 /*
     2  * Summary: lists interfaces
     3  * Description: this module implement the list support used in
     4  * various place in the library.
     5  *
     6  * Copy: See Copyright for the status of this software.
     7  *
     8  * Author: Gary Pennington <Gary.Pennington@uk.sun.com>
     9  * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. 
    10  */
    11 
    12 /** @file
    13 @publishedAll
    14 @released
    15 */
    16 
    17 #ifndef XML_LIST_H
    18 #define XML_LIST_H
    19 
    20 #include <stdapis/libxml2/libxml2_xmlversion.h>
    21 
    22 #ifdef __cplusplus
    23 extern "C" {
    24 #endif
    25 
    26 typedef struct _xmlLink xmlLink;
    27 typedef xmlLink *xmlLinkPtr;
    28 
    29 typedef struct _xmlList xmlList;
    30 typedef xmlList *xmlListPtr;
    31 
    32 /**
    33  * xmlListDeallocator:
    34  * @param lk the data to deallocate
    35  *
    36  * Callback function used to free data from a list.
    37  */
    38 typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
    39 /**
    40  * xmlListDataCompare:
    41  * @param data0 the first data
    42  * @param data1 the second data
    43  *
    44  * Callback function used to compare 2 data.
    45  *
    46  * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
    47  */
    48 typedef int  (*xmlListDataCompare) (const void *data0, const void *data1);
    49 /**
    50  * xmlListWalker:
    51  * @param data the data found in the list
    52  * @param user extra user provided data to the walker
    53  *
    54  * Callback function used when walking a list with xmlListWalk().
    55  *
    56  * Returns 0 to stop walking the list, 1 otherwise.
    57  */
    58 typedef int (*xmlListWalker) (const void *data, const void *user);
    59 
    60 /* Creation/Deletion */
    61 XMLPUBFUN xmlListPtr XMLCALL
    62         xmlListCreate       (xmlListDeallocator deallocator, xmlListDataCompare compare);
    63 XMLPUBFUN void XMLCALL
    64         xmlListDelete       (xmlListPtr l);
    65 
    66 /* Basic Operators */
    67 XMLPUBFUN int XMLCALL
    68         xmlListInsert       (xmlListPtr l, void *data) ;
    69 XMLPUBFUN int XMLCALL
    70         xmlListAppend       (xmlListPtr l, void *data) ;
    71 XMLPUBFUN int XMLCALL
    72         xmlListRemoveFirst  (xmlListPtr l, void *data);
    73 XMLPUBFUN void XMLCALL
    74         xmlListClear        (xmlListPtr l);
    75 XMLPUBFUN int XMLCALL
    76         xmlListEmpty        (xmlListPtr l);
    77 XMLPUBFUN xmlLinkPtr XMLCALL
    78         xmlListFront        (xmlListPtr l);
    79 
    80 #ifndef XMLENGINE_EXCLUDE_UNUSED
    81 XMLPUBFUN xmlLinkPtr XMLCALL xmlListEnd     (xmlListPtr l);
    82 XMLPUBFUN void  XMLCALL xmlListReverse      (xmlListPtr l);
    83 XMLPUBFUN void  XMLCALL xmlListPopBack      (xmlListPtr l);
    84 XMLPUBFUN void  XMLCALL xmlListSort         (xmlListPtr l);
    85 #endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */
    86 
    87 XMLPUBFUN void* XMLCALL xmlListSearch       (xmlListPtr l, void *data);
    88 
    89 #ifndef XMLENGINE_EXCLUDE_UNUSED
    90 XMLPUBFUN void* XMLCALL xmlListReverseSearch(xmlListPtr l, void *data);
    91 XMLPUBFUN int   XMLCALL xmlListRemoveLast   (xmlListPtr l, void *data);
    92 XMLPUBFUN int   XMLCALL xmlListRemoveAll    (xmlListPtr l, void *data);
    93 XMLPUBFUN int   XMLCALL xmlListPushBack     (xmlListPtr l, void *data);
    94 XMLPUBFUN void  XMLCALL xmlListReverseWalk  (xmlListPtr l,
    95                                              xmlListWalker walker,
    96                                              const void *user);
    97 #endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */
    98 
    99 XMLPUBFUN xmlListPtr XMLCALL xmlListDup (const xmlListPtr old);
   100 XMLPUBFUN int   XMLCALL xmlListSize     (xmlListPtr l);
   101 XMLPUBFUN void  XMLCALL xmlListPopFront (xmlListPtr l);
   102 XMLPUBFUN int   XMLCALL xmlListPushFront(xmlListPtr l, void *data);
   103 XMLPUBFUN void  XMLCALL xmlListWalk     (xmlListPtr l, xmlListWalker walker, const void *user);
   104 XMLPUBFUN void  XMLCALL xmlListMerge    (xmlListPtr l1, xmlListPtr l2);
   105 XMLPUBFUN int   XMLCALL xmlListCopy     (xmlListPtr cur, const xmlListPtr old);
   106 /* Link operators */
   107 XMLPUBFUN void* XMLCALL xmlLinkGetData  (xmlLinkPtr lk);
   108 
   109 /* xmlListUnique() */
   110 /* xmlListSwap */
   111 
   112 #ifdef __cplusplus
   113 }
   114 #endif
   115 
   116 #endif /* __XML_LIST_H */
   117