Graphviz 2.29.20120208.0545
Data Structures | Defines | Typedefs | Functions | Variables
lib/cdt/cdt.h File Reference
#include <stddef.h>
Include dependency graph for cdt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _dtlink_s
struct  _dthold_s
struct  _dtmethod_s
struct  _dtdata_s
struct  _dtdisc_s
struct  _dt_s
struct  _dtstat_s

Defines

#define CDT_VERSION   20050420L
#define Void_t   void
#define _ARG_(x)   x
#define _BEGIN_EXTERNS_
#define _END_EXTERNS_
#define __EXTERN__(T, obj)   extern T obj
#define __DEFINE__(T, obj, val)   T obj = val
#define DTDISC(dc, ky, sz, lk, mkf, frf, cmpf, hshf, memf, evf)
#define DTOFFSET(struct_s, member)   ((int)(&((struct_s*)0)->member))
#define DT_FOUND   0100000
#define DT_SET   0000001
#define DT_BAG   0000002
#define DT_OSET   0000004
#define DT_OBAG   0000010
#define DT_LIST   0000020
#define DT_STACK   0000040
#define DT_QUEUE   0000100
#define DT_DEQUE   0000200
#define DT_METHODS   0000377
#define DT_SAMECMP   0000001
#define DT_SAMEHASH   0000002
#define DT_INSERT   0000001
#define DT_DELETE   0000002
#define DT_SEARCH   0000004
#define DT_NEXT   0000010
#define DT_PREV   0000020
#define DT_RENEW   0000040
#define DT_CLEAR   0000100
#define DT_FIRST   0000200
#define DT_LAST   0000400
#define DT_MATCH   0001000
#define DT_VSEARCH   0002000
#define DT_ATTACH   0004000
#define DT_DETACH   0010000
#define DT_APPEND   0020000
#define DT_OPEN   1
#define DT_CLOSE   2
#define DT_DISC   3
#define DT_METH   4
#define DT_ENDOPEN   5
#define DT_ENDCLOSE   6
#define DT_HASHSIZE   7
#define _DT(dt)   ((Dt_t*)(dt))
#define _DTDSC(dc, ky, sz, lk, cmpf)   (ky = dc->key, sz = dc->size, lk = dc->link, cmpf = dc->comparf)
#define _DTLNK(o, lk)   ((Dtlink_t*)((char*)(o) + lk) )
#define _DTOBJ(e, lk)   (lk < 0 ? ((Dthold_t*)(e))->obj : (Void_t*)((char*)(e) - lk) )
#define _DTKEY(o, ky, sz)   (Void_t*)(sz < 0 ? *((char**)((char*)(o)+ky)) : ((char*)(o)+ky))
#define _DTCMP(dt, k1, k2, dc, cmpf, sz)
#define _DTHSH(dt, ky, dc, sz)   (dc->hashf ? (*dc->hashf)(dt,ky,dc) : dtstrhash(0,ky,sz) )
#define _DTMTCH(dt, key, action)
#define _DTSRCH(dt, obj, action)
#define DTTREEMATCH(dt, key, action)   _DTMTCH(_DT(dt),(Void_t*)(key),action)
#define DTTREESEARCH(dt, obj, action)   _DTSRCH(_DT(dt),(Void_t*)(obj),action)
#define dtvnext(d)   (_DT(d)->view)
#define dtvcount(d)   (_DT(d)->nview)
#define dtvhere(d)   (_DT(d)->walk)
#define dtlink(d, e)   (((Dtlink_t*)(e))->right)
#define dtobj(d, e)   _DTOBJ((e), _DT(d)->disc->link)
#define dtfinger(d)   (_DT(d)->data->here ? dtobj((d),_DT(d)->data->here):(Void_t*)(0))
#define dtfirst(d)   (*(_DT(d)->searchf))((d),(Void_t*)(0),DT_FIRST)
#define dtnext(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_NEXT)
#define dtleast(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_SEARCH|DT_NEXT)
#define dtlast(d)   (*(_DT(d)->searchf))((d),(Void_t*)(0),DT_LAST)
#define dtprev(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_PREV)
#define dtmost(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_SEARCH|DT_PREV)
#define dtsearch(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_SEARCH)
#define dtmatch(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_MATCH)
#define dtinsert(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_INSERT)
#define dtappend(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_INSERT|DT_APPEND)
#define dtdelete(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_DELETE)
#define dtattach(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_ATTACH)
#define dtdetach(d, o)   (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_DETACH)
#define dtclear(d)   (*(_DT(d)->searchf))((d),(Void_t*)(0),DT_CLEAR)
#define dtfound(d)   (_DT(d)->type & DT_FOUND)
#define DT_PRIME   17109811
#define dtcharhash(h, c)   (((unsigned int)(h) + (unsigned int)(c)) * DT_PRIME )

Typedefs

typedef struct _dtlink_s Dtlink_t
typedef struct _dthold_s Dthold_t
typedef struct _dtdisc_s Dtdisc_t
typedef struct _dtmethod_s Dtmethod_t
typedef struct _dtdata_s Dtdata_t
typedef struct _dt_s Dt_t
typedef struct _dt_s Dict_t
typedef struct _dtstat_s Dtstat_t
typedef Void_t *Dtmemory_f _ARG_ ((Dt_t *, Void_t *, size_t, Dtdisc_t *))

Functions

_END_EXTERNS_ _BEGIN_EXTERNS_
Dt_t *dtopen 
_ARG_ ((Dtdisc_t *, Dtmethod_t *))
int dtclose _ARG_ ((Dt_t *))
Dt_t *dtview _ARG_ ((Dt_t *, Dt_t *))
Dtdisc_t *dtdisc _ARG_ ((Dt_t *dt, Dtdisc_t *, int))
Dtmethod_t *dtmethod _ARG_ ((Dt_t *, Dtmethod_t *))
int dtrestore _ARG_ ((Dt_t *, Dtlink_t *))
int dttreeset _ARG_ ((Dt_t *, int, int))
int dtwalk _ARG_ ((Dt_t *, int(*)(Dt_t *, Void_t *, Void_t *), Void_t *))
Void_t *dtrenew _ARG_ ((Dt_t *, Void_t *))
int dtstat _ARG_ ((Dt_t *, Dtstat_t *, int))
unsigned int dtstrhash _ARG_ ((unsigned int, Void_t *, int))
int memcmp _ARG_ ((const Void_t *, const Void_t *, size_t))
int strcmp _ARG_ ((const char *, const char *))

Variables

_BEGIN_EXTERNS_ Dtmethod_tDtset
Dtmethod_tDtbag
Dtmethod_tDtoset
Dtmethod_tDtobag
Dtmethod_tDtlist
Dtmethod_tDtstack
Dtmethod_tDtqueue
Dtmethod_tDtdeque
Dtmethod_tDtorder
Dtmethod_tDttree
Dtmethod_tDthash
Dtmethod_t _Dttree
Dtmethod_t _Dthash
Dtmethod_t _Dtlist
Dtmethod_t _Dtqueue
Dtmethod_t _Dtstack

Define Documentation

#define __DEFINE__ (   T,
  obj,
  val 
)    T obj = val

Definition at line 39 of file cdt.h.

#define __EXTERN__ (   T,
  obj 
)    extern T obj

Definition at line 38 of file cdt.h.

#define _ARG_ (   x)    x

Definition at line 16 of file cdt.h.

#define _BEGIN_EXTERNS_

Definition at line 22 of file cdt.h.

#define _DT (   dt)    ((Dt_t*)(dt))

Definition at line 250 of file cdt.h.

#define _DTCMP (   dt,
  k1,
  k2,
  dc,
  cmpf,
  sz 
)
Value:
(cmpf ? (*cmpf)(dt,k1,k2,dc) : \
                         (sz <= 0 ? strcmp(k1,k2) : memcmp(k1,k2,sz)) )

Definition at line 257 of file cdt.h.

#define _DTDSC (   dc,
  ky,
  sz,
  lk,
  cmpf 
)    (ky = dc->key, sz = dc->size, lk = dc->link, cmpf = dc->comparf)

Definition at line 251 of file cdt.h.

#define _DTHSH (   dt,
  ky,
  dc,
  sz 
)    (dc->hashf ? (*dc->hashf)(dt,ky,dc) : dtstrhash(0,ky,sz) )

Definition at line 260 of file cdt.h.

Referenced by dtdisc(), dtmethod(), and dtrenew().

#define _DTKEY (   o,
  ky,
  sz 
)    (Void_t*)(sz < 0 ? *((char**)((char*)(o)+ky)) : ((char*)(o)+ky))

Definition at line 255 of file cdt.h.

Referenced by dtdisc(), dtmethod(), and dtrenew().

#define _DTLNK (   o,
  lk 
)    ((Dtlink_t*)((char*)(o) + lk) )

Definition at line 253 of file cdt.h.

#define _DTMTCH (   dt,
  key,
  action 
)
Value:
do { Dtlink_t* _e; Void_t *_o, *_k, *_key; Dtdisc_t* _dc; \
             int _ky, _sz, _lk, _cmp; Dtcompar_f _cmpf; \
             _dc = (dt)->disc; _DTDSC(_dc, _ky, _sz, _lk, _cmpf); \
             _key = (key); \
             for(_e = (dt)->data->here; _e; _e = _cmp < 0 ? _e->hl._left : _e->right) \
             {  _o = _DTOBJ(_e, _lk); _k = _DTKEY(_o, _ky, _sz); \
                if((_cmp = _DTCMP((dt), _key, _k, _dc, _cmpf, _sz)) == 0) \
                        break; \
             } \
             action (_e ? _o : (Void_t*)0); \
        } while(0)

Definition at line 263 of file cdt.h.

#define _DTOBJ (   e,
  lk 
)    (lk < 0 ? ((Dthold_t*)(e))->obj : (Void_t*)((char*)(e) - lk) )

Definition at line 254 of file cdt.h.

Referenced by dtdisc(), dtmethod(), and dtrenew().

#define _DTSRCH (   dt,
  obj,
  action 
)
Value:
do { Dtlink_t* _e; Void_t *_o, *_k, *_key; Dtdisc_t* _dc; \
             int _ky, _sz, _lk, _cmp; Dtcompar_f _cmpf; \
             _dc = (dt)->disc; _DTDSC(_dc, _ky, _sz, _lk, _cmpf); \
             _key = _DTKEY(obj, _ky, _sz); \
             for(_e = (dt)->data->here; _e; _e = _cmp < 0 ? _e->hl._left : _e->right) \
             {  _o = _DTOBJ(_e, _lk); _k = _DTKEY(_o, _ky, _sz); \
                if((_cmp = _DTCMP((dt), _key, _k, _dc, _cmpf, _sz)) == 0) \
                        break; \
             } \
             action (_e ? _o : (Void_t*)0); \
        } while(0)

Definition at line 276 of file cdt.h.

#define _END_EXTERNS_

Definition at line 25 of file cdt.h.

#define CDT_VERSION   20050420L

Definition at line 9 of file cdt.h.

#define DT_APPEND   0020000

Definition at line 173 of file cdt.h.

#define DT_ATTACH   0004000

Definition at line 171 of file cdt.h.

#define DT_BAG   0000002

Definition at line 146 of file cdt.h.

Referenced by dtdisc(), dtextract(), dtflatten(), dtmethod(), dtrestore(), and dtstat().

#define DT_CLEAR   0000100

Definition at line 166 of file cdt.h.

Referenced by dtclose().

#define DT_CLOSE   2

Definition at line 177 of file cdt.h.

Referenced by dtclose().

#define DT_DELETE   0000002

Definition at line 161 of file cdt.h.

#define DT_DEQUE   0000200

Definition at line 152 of file cdt.h.

#define DT_DETACH   0010000

Definition at line 172 of file cdt.h.

#define DT_DISC   3

Definition at line 178 of file cdt.h.

Referenced by dtdisc().

#define DT_ENDCLOSE   6

Definition at line 181 of file cdt.h.

Referenced by dtclose().

#define DT_ENDOPEN   5

Definition at line 180 of file cdt.h.

Referenced by dtopen().

#define DT_FIRST   0000200

Definition at line 167 of file cdt.h.

#define DT_FOUND   0100000

Definition at line 142 of file cdt.h.

#define DT_HASHSIZE   7

Definition at line 182 of file cdt.h.

#define DT_INSERT   0000001

Definition at line 160 of file cdt.h.

#define DT_LAST   0000400

Definition at line 168 of file cdt.h.

#define DT_LIST   0000020

Definition at line 149 of file cdt.h.

Referenced by dtdisc(), dtflatten(), dtmethod(), dtrenew(), and dtsize().

#define DT_MATCH   0001000

Definition at line 169 of file cdt.h.

#define DT_METH   4

Definition at line 179 of file cdt.h.

Referenced by dtmethod().

#define DT_METHODS   0000377

Definition at line 153 of file cdt.h.

Referenced by dtmethod(), and dtstat().

#define DT_NEXT   0000010

Definition at line 163 of file cdt.h.

#define DT_OBAG   0000010

Definition at line 148 of file cdt.h.

Referenced by dtextract(), dtmethod(), dtrenew(), dtrestore(), dtsize(), and dtstat().

#define DT_OPEN   1

Definition at line 176 of file cdt.h.

Referenced by dtopen().

#define DT_OSET   0000004

Definition at line 147 of file cdt.h.

Referenced by dtextract(), dtmethod(), dtrenew(), dtrestore(), dtsize(), dtstat(), and dttreeset().

#define DT_PREV   0000020

Definition at line 164 of file cdt.h.

#define DT_PRIME   17109811

Definition at line 316 of file cdt.h.

Referenced by dtstrhash().

#define DT_QUEUE   0000100

Definition at line 151 of file cdt.h.

Referenced by dtdisc(), dtflatten(), dtmethod(), dtrenew(), and dtsize().

#define DT_RENEW   0000040

Definition at line 165 of file cdt.h.

Referenced by dtdisc(), dtmethod(), dtrenew(), and dtrestore().

#define DT_SAMECMP   0000001

Definition at line 156 of file cdt.h.

Referenced by dtdisc().

#define DT_SAMEHASH   0000002

Definition at line 157 of file cdt.h.

Referenced by dtdisc().

#define DT_SEARCH   0000004

Definition at line 162 of file cdt.h.

#define DT_SET   0000001

Definition at line 145 of file cdt.h.

Referenced by dtdisc(), dtextract(), dtflatten(), dtmethod(), dtrestore(), and dtstat().

#define DT_STACK   0000040

Definition at line 150 of file cdt.h.

Referenced by dtdisc(), dtflatten(), dtmethod(), dtrenew(), and dtsize().

#define DT_VSEARCH   0002000

Definition at line 170 of file cdt.h.

#define dtappend (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_INSERT|DT_APPEND)

Definition at line 309 of file cdt.h.

#define dtattach (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_ATTACH)

Definition at line 311 of file cdt.h.

#define dtcharhash (   h,
 
)    (((unsigned int)(h) + (unsigned int)(c)) * DT_PRIME )

Definition at line 317 of file cdt.h.

#define dtclear (   d)    (*(_DT(d)->searchf))((d),(Void_t*)(0),DT_CLEAR)

Definition at line 313 of file cdt.h.

Referenced by clearGrid(), clearNodeset(), and clearPM().

#define dtdelete (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_DELETE)
#define dtdetach (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_DETACH)

Definition at line 312 of file cdt.h.

#define DTDISC (   dc,
  ky,
  sz,
  lk,
  mkf,
  frf,
  cmpf,
  hshf,
  memf,
  evf 
)
Value:
( (dc)->key = (ky), (dc)->size = (sz), (dc)->link = (lk), \
          (dc)->makef = (mkf), (dc)->freef = (frf), \
          (dc)->comparf = (cmpf), (dc)->hashf = (hshf), \
          (dc)->memoryf = (memf), (dc)->eventf = (evf) )

Definition at line 106 of file cdt.h.

#define dtfinger (   d)    (_DT(d)->data->here ? dtobj((d),_DT(d)->data->here):(Void_t*)(0))

Definition at line 298 of file cdt.h.

#define dtfirst (   d)    (*(_DT(d)->searchf))((d),(Void_t*)(0),DT_FIRST)

Definition at line 300 of file cdt.h.

Referenced by agfstattr(), agfstnode(), dtwalk(), epsf_define(), firstDeglist(), and printNodeset().

#define dtfound (   d)    (_DT(d)->type & DT_FOUND)

Definition at line 314 of file cdt.h.

#define dtinsert (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_INSERT)
#define dtlast (   d)    (*(_DT(d)->searchf))((d),(Void_t*)(0),DT_LAST)

Definition at line 303 of file cdt.h.

Referenced by aglstattr(), and aglstnode().

#define dtleast (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_SEARCH|DT_NEXT)

Definition at line 302 of file cdt.h.

#define dtlink (   d,
 
)    (((Dtlink_t*)(e))->right)

Definition at line 296 of file cdt.h.

Referenced by pointsOf().

#define dtmatch (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_MATCH)

Definition at line 307 of file cdt.h.

Referenced by agfindattr(), agfindnode(), agidnode(), and inIntSet().

#define dtmost (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_SEARCH|DT_PREV)

Definition at line 305 of file cdt.h.

#define dtnext (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_NEXT)
#define dtobj (   d,
 
)    _DTOBJ((e), _DT(d)->disc->link)

Definition at line 297 of file cdt.h.

#define DTOFFSET (   struct_s,
  member 
)    ((int)(&((struct_s*)0)->member))

Definition at line 115 of file cdt.h.

#define dtprev (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_PREV)

Definition at line 304 of file cdt.h.

Referenced by agprvattr(), and agprvnode().

#define dtsearch (   d,
 
)    (*(_DT(d)->searchf))((d),(Void_t*)(o),DT_SEARCH)
#define DTTREEMATCH (   dt,
  key,
  action 
)    _DTMTCH(_DT(dt),(Void_t*)(key),action)

Definition at line 289 of file cdt.h.

#define DTTREESEARCH (   dt,
  obj,
  action 
)    _DTSRCH(_DT(dt),(Void_t*)(obj),action)

Definition at line 290 of file cdt.h.

#define dtvcount (   d)    (_DT(d)->nview)

Definition at line 293 of file cdt.h.

#define dtvhere (   d)    (_DT(d)->walk)

Definition at line 294 of file cdt.h.

#define dtvnext (   d)    (_DT(d)->view)

Definition at line 292 of file cdt.h.

#define Void_t   void

Definition at line 12 of file cdt.h.

Referenced by dtclose(), dtdisc(), dtmethod(), dtopen(), dtrenew(), dtrestore(), and dtwalk().


Typedef Documentation

int dtsize _ARG_ ( (Dt_t *, Void_t *, size_t, Dtdisc_t *)  )

Definition at line 50 of file cdt.h.

typedef struct _dt_s Dict_t

Definition at line 48 of file cdt.h.

typedef struct _dt_s Dt_t

Definition at line 47 of file cdt.h.

typedef struct _dtdata_s Dtdata_t

Definition at line 46 of file cdt.h.

typedef struct _dtdisc_s Dtdisc_t

Definition at line 44 of file cdt.h.

typedef struct _dthold_s Dthold_t

Definition at line 43 of file cdt.h.

typedef struct _dtlink_s Dtlink_t

Definition at line 42 of file cdt.h.

typedef struct _dtmethod_s Dtmethod_t

Definition at line 45 of file cdt.h.

typedef struct _dtstat_s Dtstat_t

Definition at line 49 of file cdt.h.


Function Documentation

_END_EXTERNS_ _BEGIN_EXTERNS_ Dt_t* dtopen _ARG_ ( (Dtdisc_t *, Dtmethod_t *)  )
int strcmp _ARG_ ( (const char *, const char *)  )
int memcmp _ARG_ ( (const Void_t *, const Void_t *, size_t)  )
unsigned int dtstrhash _ARG_ ( (unsigned int, Void_t *, int)  )
int dtstat _ARG_ ( (Dt_t *, Dtstat_t *, int)  )
Void_t* dtrenew _ARG_ ( (Dt_t *, Void_t *)  )
int dtwalk _ARG_ ( (Dt_t *, int(*)(Dt_t *, Void_t *, Void_t *), Void_t *)  )
int dttreeset _ARG_ ( (Dt_t *, int, int)  )
int dtrestore _ARG_ ( (Dt_t *, Dtlink_t *)  )
Dtmethod_t* dtmethod _ARG_ ( (Dt_t *, Dtmethod_t *)  )
Dtdisc_t* dtdisc _ARG_ ( (Dt_t *dt, Dtdisc_t *, int)  )
Dt_t* dtview _ARG_ ( (Dt_t *, Dt_t *)  )
int dtclose _ARG_ ( (Dt_t *)  )

Variable Documentation

Definition at line 341 of file dthash.c.

Definition at line 363 of file dttree.c.

Referenced by htmlparse(), parseHTML(), and yyparse().

_BEGIN_EXTERNS_ Dtmethod_t* Dtset

Referenced by agNEWdict().