00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00055 #ifndef DK_STO_INCLUDED
00056 #define DK_STO_INCLUDED 1
00057
00058 #include <dk.h>
00059 #include <dktypes.h>
00060
00061 #if defined(EXTERN)
00062 #undef EXTERN
00063 #endif
00064 #ifndef DK_STO_C
00065 #if !DK_HAVE_PROTOTYPES
00066 #define EXTERN extern
00067 #else
00068 #define EXTERN
00069 #endif
00070 #else
00071 #define EXTERN
00072 #endif
00073
00074 #if defined(__cplusplus)
00075 extern "C" {
00076 #endif
00077
00078
00079
00096 EXTERN dk_storage_t *
00097 dksto_open DK_PR((int c));
00098
00099
00100
00107 EXTERN int
00108 dksto_set_eval_c DK_PR((dk_storage_t *c, dk_fct_eval_c_t *f, int s));
00109
00110
00111
00118 EXTERN int
00119 dksto_set_eval_uc DK_PR((dk_storage_t *c, dk_fct_eval_uc_t *f, int s));
00120
00121
00122
00129 EXTERN int
00130 dksto_set_eval_s DK_PR((dk_storage_t *c, dk_fct_eval_s_t *f, int s));
00131
00132
00133
00140 EXTERN int
00141 dksto_set_eval_us DK_PR((dk_storage_t *c, dk_fct_eval_us_t *f, int s));
00142
00143
00144
00151 EXTERN int
00152 dksto_set_eval_i DK_PR((dk_storage_t *c, dk_fct_eval_i_t *f, int s));
00153
00154
00155
00162 EXTERN int
00163 dksto_set_eval_ui DK_PR((dk_storage_t *c, dk_fct_eval_ui_t *f, int s));
00164
00165
00166
00173 EXTERN int
00174 dksto_set_eval_l DK_PR((dk_storage_t *c, dk_fct_eval_l_t *f, int s));
00175
00176
00177
00184 EXTERN int
00185 dksto_set_eval_ul DK_PR((dk_storage_t *c, dk_fct_eval_ul_t *f, int s));
00186
00187
00188
00195 EXTERN int
00196 dksto_set_eval_f DK_PR((dk_storage_t *c, dk_fct_eval_f_t *f, int s));
00197
00198
00199
00206 EXTERN int
00207 dksto_set_eval_d DK_PR((dk_storage_t *c, dk_fct_eval_d_t *f, int s));
00208
00209
00210
00218 EXTERN int
00219 dksto_set_comp DK_PR((dk_storage_t *c, dk_fct_comp_t *f, int s));
00220
00221
00222
00226 EXTERN void
00227 dksto_close DK_PR((dk_storage_t *c));
00228
00229
00230
00234 EXTERN void
00235 dksto_remove_all DK_PR((dk_storage_t *c));
00236
00237
00238
00244 EXTERN int
00245 dksto_remove DK_PR((dk_storage_t *c, void *o));
00246
00247
00248
00254 EXTERN int
00255 dksto_add DK_PR((dk_storage_t *c, void *o));
00256
00257
00258
00266 EXTERN dk_storage_iterator_t *
00267 dksto_it_open DK_PR((dk_storage_t *c));
00268
00269
00270
00275 EXTERN void
00276 dksto_it_close DK_PR((dk_storage_iterator_t *i));
00277
00278
00279
00284 EXTERN void
00285 dksto_it_reset DK_PR((dk_storage_iterator_t *i));
00286
00287
00288
00292 EXTERN void *
00293 dksto_it_next DK_PR((dk_storage_iterator_t *i));
00294
00295
00296
00304 EXTERN void *
00305 dksto_it_find_exact DK_PR((dk_storage_iterator_t *i, void *o));
00306
00307
00308
00321 EXTERN void *
00322 dksto_it_find_like DK_PR((dk_storage_iterator_t *i, void *o, int s));
00323
00324
00325
00334 EXTERN int
00335 dksto_use_trees DK_PR((dk_storage_t *c, int f));
00336
00337
00338
00344 EXTERN void *
00345 dksto_find_root DK_PR((dk_storage_t *c));
00346
00347
00348
00354 EXTERN void *
00355 dksto_it_find_parent DK_PR((dk_storage_iterator_t *i));
00356
00357
00358
00364 EXTERN void *
00365 dksto_it_find_left DK_PR((dk_storage_iterator_t *i));
00366
00367
00368
00374 EXTERN void *
00375 dksto_it_find_right DK_PR((dk_storage_iterator_t *i));
00376
00377
00378
00384 EXTERN void *
00385 dksto_it_find_root DK_PR((dk_storage_iterator_t *i));
00386
00387
00388
00389 #if defined(__cplusplus)
00390 }
00391 #endif
00392
00393
00394
00396 #define DK_STO_SIZE_HUGE 0
00397
00399 #define DK_STO_SIZE_LARGE 1
00400
00402 #define DK_STO_SIZE_MEDIUM 2
00403
00405 #define DK_STO_SIZE_SMALL 3
00406
00408 #define DK_STO_SIZE_TINY 4
00409
00410 #endif
00411