00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __LNC_SEARCH_H
00020 #define __LNC_SEARCH_H
00021
00022 #include <libncat/libncat.h>
00023 #include <libncat/list.h>
00024 #include <libncat/catalog.h>
00025 #include <libncat/dset.h>
00026
00034
00035 typedef int (*_lnc_comp)(void* data, void* value);
00036
00037
00038 typedef int (*_lnc_op)(void* object, lnc_slist* l);
00039
00040 struct _lnc_node {
00041 _lnc_comp c;
00042 int offset;
00043 void* value;
00044 };
00045
00046 struct _lnc_nop {
00047 lnc_slist* l;
00048 _lnc_op lop;
00049 unsigned int type;
00050 };
00051
00056 struct lnc_search {
00057 int tests;
00058 int hits;
00059 lnc_dataset* dset;
00060 lnc_slist* root;
00061 lnc_slist* op_orphans;
00062 lnc_slist* comp_orphans;
00063 struct _lnc_nop* ostart;
00064 int num_s;
00065 lnc_slist* free_list;
00066 lnc_slist* free_slist;
00067 };
00068
00069 #endif