Home | History | Annotate | Download | only in libxmlrpg
      1       * Summary: lists interfaces
      2       * Description: this module implement the list support used in
      3       * various place in the library.
      4       *
      5       * Copy: See Copyright for the status of this software.
      6       *
      7       * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A.
      8 
      9       /if not defined(XML_LINK_INCLUDE__)
     10       /define XML_LINK_INCLUDE__
     11 
     12       /include "libxmlrpg/xmlversion"
     13 
     14      d xmlLinkPtr      s               *   based(######typedef######)
     15 
     16      d xmlListPtr      s               *   based(######typedef######)
     17 
     18       * xmlListDeallocator:
     19       * @lk:  the data to deallocate
     20       *
     21       * Callback function used to free data from a list.
     22 
     23      d xmlListDeallocator...
     24      d                 s               *   based(######typedef######)
     25      d                                     procptr
     26 
     27       * xmlListDataCompare:
     28       * @data0: the first data
     29       * @data1: the second data
     30       *
     31       * Callback function used to compare 2 data.
     32       *
     33       * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
     34 
     35      d xmlListDataCompare...
     36      d                 s               *   based(######typedef######)
     37      d                                     procptr
     38 
     39       * xmlListWalker:
     40       * @data: the data found in the list
     41       * @user: extra user provided data to the walker
     42       *
     43       * Callback function used when walking a list with xmlListWalk().
     44       *
     45       * Returns 0 to stop walking the list, 1 otherwise.
     46 
     47      d xmlListWalker   s               *   based(######typedef######)
     48      d                                     procptr
     49 
     50       * Creation/Deletion
     51 
     52      d xmlListCreate   pr                  extproc('xmlListCreate')
     53      d                                     like(xmlListPtr)
     54      d  deallocator                        value like(xmlListDeallocator)
     55      d  compare                            value like(xmlListDataCompare)
     56 
     57      d xmlListDelete   pr                  extproc('xmlListDelete')
     58      d  l                                  value like(xmlListPtr)
     59 
     60       * Basic Operators
     61 
     62      d xmlListSearch   pr              *   extproc('xmlListSearch')             void *
     63      d  l                                  value like(xmlListPtr)
     64      d  data                           *   value                                void *
     65 
     66      d xmlListReverseSearch...
     67      d                 pr              *   extproc('xmlListReverseSearch')      void *
     68      d  l                                  value like(xmlListPtr)
     69      d  data                           *   value                                void *
     70 
     71      d xmlListInsert   pr            10i 0 extproc('xmlListInsert')
     72      d  l                                  value like(xmlListPtr)
     73      d  data                           *   value                                void *
     74 
     75      d xmlListAppend   pr            10i 0 extproc('xmlListAppend')
     76      d  l                                  value like(xmlListPtr)
     77      d  data                           *   value                                void *
     78 
     79      d xmlListRemoveFirst...
     80      d                 pr            10i 0 extproc('xmlListRemoveFirst')
     81      d  l                                  value like(xmlListPtr)
     82      d  data                           *   value                                void *
     83 
     84      d xmlListRemoveLast...
     85      d                 pr            10i 0 extproc('xmlListRemoveLast')
     86      d  l                                  value like(xmlListPtr)
     87      d  data                           *   value                                void *
     88 
     89      d xmlListRemoveAll...
     90      d                 pr            10i 0 extproc('xmlListRemoveAll')
     91      d  l                                  value like(xmlListPtr)
     92      d  data                           *   value                                void *
     93 
     94      d xmlListClear    pr                  extproc('xmlListClear')
     95      d  l                                  value like(xmlListPtr)
     96 
     97      d xmlListEmpty    pr            10i 0 extproc('xmlListEmpty')
     98      d  l                                  value like(xmlListPtr)
     99 
    100      d xmlListFront    pr                  extproc('xmlListFront')
    101      d                                     like(xmlLinkPtr)
    102      d  l                                  value like(xmlListPtr)
    103 
    104      d xmlListEnd      pr                  extproc('xmlListEnd')
    105      d                                     like(xmlLinkPtr)
    106      d  l                                  value like(xmlListPtr)
    107 
    108      d xmlListSize     pr            10i 0 extproc('xmlListSize')
    109      d  l                                  value like(xmlListPtr)
    110 
    111      d xmlListPopFront...
    112      d                 pr                  extproc('xmlListPopFront')
    113      d  l                                  value like(xmlListPtr)
    114 
    115      d xmlListPopBack...
    116      d                 pr                  extproc('xmlListPopBack')
    117      d  l                                  value like(xmlListPtr)
    118 
    119      d xmlListPushFront...
    120      d                 pr            10i 0 extproc('xmlListPushFront')
    121      d  l                                  value like(xmlListPtr)
    122      d  data                           *   value                                void *
    123 
    124      d xmlListPushBack...
    125      d                 pr            10i 0 extproc('xmlListPushBack')
    126      d  l                                  value like(xmlListPtr)
    127      d  data                           *   value                                void *
    128 
    129       * Advanced Operators
    130 
    131      d xmlListReverse  pr                  extproc('xmlListReverse')
    132      d  l                                  value like(xmlListPtr)
    133 
    134      d xmlListSort     pr                  extproc('xmlListSort')
    135      d  l                                  value like(xmlListPtr)
    136 
    137      d xmlListWalk     pr                  extproc('xmlListWalk')
    138      d  l                                  value like(xmlListPtr)
    139      d  walker                             value like(xmlListWalker)
    140      d  user                           *   value                                const void *
    141 
    142      d xmlListReverseWalk...
    143      d                 pr                  extproc('xmlListReverseWalk')
    144      d  l                                  value like(xmlListPtr)
    145      d  walker                             value like(xmlListWalker)
    146      d  user                           *   value                                const void *
    147 
    148      d xmlListMerge    pr                  extproc('xmlListMerge')
    149      d  l1                                 value like(xmlListPtr)
    150      d  l2                                 value like(xmlListPtr)
    151 
    152      d xmlListDup      pr                  extproc('xmlListDup')
    153      d                                     like(xmlListPtr)
    154      d  old                                value like(xmlListPtr)
    155 
    156      d xmlListCopy     pr            10i 0 extproc('xmlListCopy')
    157      d  cur                                value like(xmlListPtr)
    158      d  old                                value like(xmlListPtr)               const
    159 
    160       * Link operators
    161 
    162      d xmlListGetData  pr              *   extproc('xmlListGetData')            void *
    163      d  lk                                 value like(xmlLinkPtr)
    164 
    165       * xmlListUnique()
    166       * xmlListSwap
    167 
    168       /endif                                                                    XML_LINK_INCLUDE__
    169