home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / database / salve / salve.h next >
Encoding:
C/C++ Source or Header  |  1988-06-02  |  4.5 KB  |  223 lines

  1. #ifndef INTERNAL
  2. #  define STRONG_TYPE(X) typedef struct { char c;}  *X
  3.  
  4.    STRONG_TYPE(Lroot);
  5.    STRONG_TYPE(Lnode);
  6.    STRONG_TYPE(Hroot);
  7.    STRONG_TYPE(Hnode);
  8.    STRONG_TYPE(Troot);
  9.    STRONG_TYPE(Tnode);
  10.    STRONG_TYPE(Mroot);
  11.    STRONG_TYPE(Mnode);
  12.    STRONG_TYPE(Broot);
  13.  
  14.    typedef int (*HashFnc)(void *key, unsigned hash); /* user supplied hash  */
  15.    typedef int (*KCmpFnc)(void *data, void * key); /* user supplied compare */
  16.    typedef void (*BEachFnc)(unsigned, void *);
  17.  
  18. #endif
  19.  
  20.  
  21. #define FIND_EQ  1
  22. #define FIND_GE  0
  23.  
  24. #define OK_DUPE  1
  25. #define NO_DUPE  0
  26.  
  27. /*************************************************/
  28. /************* Linked List Prototypes ************/
  29. /*************************************************/
  30. int   Lopen
  31.     (Lroot *lroot,  KCmpFnc comp);
  32.  
  33. int   Lclose
  34.     (Lroot *lroot);
  35.  
  36. Lnode Ladd_first
  37.     (Lroot lroot,  void *data);
  38.  
  39. Lnode Ladd_last
  40.     (Lroot lroot,  void *data);
  41.  
  42. Lnode Ladd_order
  43.     (Lroot lroot,  void *data,  void *key, int dupe);
  44.  
  45. Lnode Ladd_before
  46.     (Lroot lroot,  void *data,  Lnode node);
  47.  
  48. Lnode Ladd_after
  49.     (Lroot lroot,  void *data,  Lnode node);
  50.  
  51. Lnode Lfind_first
  52.     (Lroot lroot,  void *found);
  53.  
  54. Lnode Lfind_last
  55.     (Lroot lroot,  void *found);
  56.  
  57. Lnode Lfind_after
  58.     (Lroot lroot,  Lnode node,  void *found);
  59.  
  60. Lnode Lfind_before
  61.     (Lroot lroot,  Lnode node,  void *found);
  62.  
  63. void  Lfind_node
  64.     (Lnode node, void *found);
  65.  
  66. Lnode Lfind
  67.     (Lroot lroot,  void *key,  void *found, int eq);
  68.  
  69. Lnode Lfind_next
  70.     (Lroot lroot,  Lnode node,  void *key,  void *found);
  71.  
  72. int   Lmake_first
  73.     (Lroot lroot,  Lnode node);
  74.  
  75. int   Lremove
  76.     (Lroot lroot,  Lnode node);
  77.  
  78. int   Ltest
  79.     (Lroot lroot,  Lnode node);
  80.  
  81. long  Lcard
  82.     (Lroot lroot);
  83.  
  84. /*************************************************/
  85. /************* Hash Table Prototypes *************/
  86. /*************************************************/
  87. int   Hopen
  88.     (Hroot *hroot,  unsigned quan,  KCmpFnc cmp,  HashFnc hsh);
  89.  
  90. int   Hclose
  91.     (Hroot *hroot);
  92.  
  93. Hnode Hadd
  94.     (Hroot hroot,  void *data,  void *key);
  95.  
  96. Hnode Hfind
  97.     (Hroot hroot,  void *key,  void *found);
  98.  
  99. void Hfind_node
  100.     (Hnode node,  void *found);
  101.  
  102. int   Hremove
  103.     (Hroot hroot,  Hnode node);
  104.  
  105. int   Htest
  106.     (Hroot hroot,  Hnode node);
  107.  
  108. long  Hcard
  109.     (Hroot hroot);
  110.  
  111. /**************************************************/
  112. /************* Binary Tree Prototypes *************/
  113. /**************************************************/
  114. int   Topen
  115.     (Troot *troot,  KCmpFnc comp);
  116.  
  117. int   Tclose
  118.     (Troot *troot);
  119.  
  120. Tnode Tadd
  121.     (Troot troot,  void *data,  void *key);
  122.  
  123. Tnode Tfind
  124.     (Troot troot,  void *key,  void *found);
  125.  
  126. Tnode Tfind_first
  127.     (Troot troot,  void *found);
  128.  
  129. Tnode Tfind_next
  130.     (Troot troot, Tnode prior,  void *found);
  131.  
  132. void Tfind_node
  133.     (Tnode node, void *found);
  134.  
  135. int   Tremove
  136.     (Troot troot,  Tnode node);
  137.  
  138. int   Ttest
  139.     (Troot troot,  Tnode node);
  140.  
  141. long  Tcard
  142.     (Troot troot);
  143.  
  144. /****************************************************/
  145. /************* Sparse Matrix Prototypes *************/
  146. /****************************************************/
  147. int   Mopen
  148.     (Mroot *mroot,  unsigned dim,  unsigned quan);
  149.  
  150. int   Mclose
  151.     (Mroot *mroot);
  152.  
  153. Mnode Madd
  154.     (Mroot mroot,  void *data,   ...);
  155.  
  156. Mnode Mfind
  157.     (Mroot mroot,  void *found,  ...);
  158.  
  159. void Mfind_node
  160.     (Mnode node,   void *found);
  161.  
  162. int   Mremove
  163.     (Mroot  mroot,  Mnode node);
  164.  
  165. int   Mtest
  166.     (Mroot  mroot,  Mnode node);
  167.  
  168. long  Mcard
  169.     (Mroot mroot);
  170.  
  171. /*************************************************/
  172. /************* Bit Stream Prototypes *************/
  173. /*************************************************/
  174. int Bopen
  175.     (Broot *root, unsigned size);
  176.  
  177. int Bclose
  178.     (Broot *root);
  179.  
  180. int Badd
  181.     (Broot root, unsigned bit_id);
  182.  
  183. int Bremove
  184.     (Broot root, unsigned bit_id);
  185.  
  186. int Btoggle
  187.     (Broot root, unsigned bit_id);
  188.  
  189. int Bcard
  190.     (Broot root);
  191.  
  192. int Btest_in
  193.     (Broot root, unsigned bit_id);
  194.  
  195. int Bfind_next
  196.     (Broot root, unsigned start, unsigned *found);
  197.  
  198. int Bfor_each
  199.     (Broot root, BEachFnc func, void *arg);
  200.  
  201. void Bunion
  202.     (Broot root1, Broot root2, Broot *uni);
  203.  
  204. void Bintersect
  205.     (Broot b1, Broot b2, Broot *inter);
  206.  
  207. void Bdifference
  208.     (Broot b1, Broot b2, Broot *diff);
  209.  
  210. void Bduplicate
  211.     (Broot orig, Broot *copy);
  212.  
  213. void Bcomplement
  214.     (Broot orig, Broot *comp);
  215.  
  216. int Bequal
  217.     (Broot b1, Broot b2);
  218.  
  219. int set_error_log
  220.     (char *file_name);
  221.  
  222. void error_report (char *, int, char *, int);
  223.