root/ext/mbstring/oniguruma/st.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */
   2 
   3 /* @(#) st.h 5.1 89/12/14 */
   4 
   5 #ifndef ST_INCLUDED
   6 
   7 #define ST_INCLUDED
   8 
   9 #ifdef _WIN32
  10 # include <windows.h>
  11 typedef ULONG_PTR st_data_t;
  12 #else
  13 typedef unsigned long st_data_t;
  14 #endif
  15 #define ST_DATA_T_DEFINED
  16 
  17 typedef struct st_table st_table;
  18 
  19 struct st_hash_type {
  20     int (*compare)();
  21     int (*hash)();
  22 };
  23 
  24 struct st_table {
  25     struct st_hash_type *type;
  26     int num_bins;
  27     int num_entries;
  28     struct st_table_entry **bins;
  29 };
  30 
  31 #define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)
  32 
  33 enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
  34 
  35 #ifndef _
  36 # define _(args) args
  37 #endif
  38 #ifndef ANYARGS
  39 # ifdef __cplusplus
  40 #   define ANYARGS ...
  41 # else
  42 #   define ANYARGS
  43 # endif
  44 #endif
  45 
  46 st_table *st_init_table _((struct st_hash_type *));
  47 st_table *st_init_table_with_size _((struct st_hash_type *, int));
  48 st_table *st_init_numtable _((void));
  49 st_table *st_init_numtable_with_size _((int));
  50 st_table *st_init_strtable _((void));
  51 st_table *st_init_strtable_with_size _((int));
  52 int st_delete _((st_table *, st_data_t *, st_data_t *));
  53 int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
  54 int st_insert _((st_table *, st_data_t, st_data_t));
  55 int st_lookup _((st_table *, st_data_t, st_data_t *));
  56 int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
  57 void st_add_direct _((st_table *, st_data_t, st_data_t));
  58 void st_free_table _((st_table *));
  59 void st_cleanup_safe _((st_table *, st_data_t));
  60 st_table *st_copy _((st_table *));
  61 
  62 #define ST_NUMCMP       ((int (*)()) 0)
  63 #define ST_NUMHASH      ((int (*)()) -2)
  64 
  65 #define st_numcmp       ST_NUMCMP
  66 #define st_numhash      ST_NUMHASH
  67 
  68 #endif /* ST_INCLUDED */

/* [<][>][^][v][top][bottom][index][help] */