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