35 #ifndef __dict_list_h_ 
   36 #define __dict_list_h_ 
   40 #define DictKey      DictListKey 
   42 #define DictNode  DictListNode 
   44 #define dictNewDict(frame,leq)      __gl_dictListNewDict(frame,leq) 
   45 #define dictDeleteDict(dict)     __gl_dictListDeleteDict(dict) 
   47 #define dictSearch(dict,key)     __gl_dictListSearch(dict,key) 
   48 #define dictInsert(dict,key)     __gl_dictListInsert(dict,key) 
   49 #define dictInsertBefore(dict,node,key)   __gl_dictListInsertBefore(dict,node,key) 
   50 #define dictDelete(dict,node)    __gl_dictListDelete(dict,node) 
   52 #define dictKey(n)         __gl_dictListKey(n) 
   53 #define dictSucc(n)        __gl_dictListSucc(n) 
   54 #define dictPred(n)        __gl_dictListPred(n) 
   55 #define dictMin(d)         __gl_dictListMin(d) 
   56 #define dictMax(d)         __gl_dictListMax(d) 
   60 typedef void *DictKey;
 
   61 typedef struct Dict Dict;
 
   62 typedef struct DictNode DictNode;
 
   66          int (*leq)(
void *frame, DictKey key1, DictKey key2) );
 
   68 void     dictDeleteDict( Dict *dict );
 
   74 DictNode *dictSearch( Dict *dict, DictKey key );
 
   75 DictNode *dictInsertBefore( Dict *dict, DictNode *node, DictKey key );
 
   76 void     dictDelete( Dict *dict, DictNode *node );
 
   78 #define     __gl_dictListKey(n)  ((n)->key) 
   79 #define     __gl_dictListSucc(n) ((n)->next) 
   80 #define     __gl_dictListPred(n) ((n)->prev) 
   81 #define     __gl_dictListMin(d)  ((d)->head.next) 
   82 #define     __gl_dictListMax(d)  ((d)->head.prev) 
   83 #define         __gl_dictListInsert(d,k) (dictInsertBefore((d),&(d)->head,(k))) 
   97   int    (*leq)(
void *frame, DictKey key1, DictKey key2);