X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dict%2Fdict-p.h;h=aa0f0221f097526d4c5ea2d28434281665d08e86;hp=7df6ba09c8a33c1844f7756af5e8405edb2f2282;hb=HEAD;hpb=ecb3935e78cd9bcfdebafdee0834cfb1060d7b5e diff --git a/dict/dict-p.h b/dict/dict-p.h index 7df6ba0..aa0f022 100644 --- a/dict/dict-p.h +++ b/dict/dict-p.h @@ -1,8 +1,5 @@ -/* $Id: dict-p.h,v 1.4 2006-05-10 08:13:18 adam Exp $ - Copyright (C) 1995-2005 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -15,9 +12,9 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #ifndef DICT_P_H @@ -33,6 +30,9 @@ YAZ_BEGIN_CDECL #define DICT_DEFAULT_PAGESIZE 4096 +typedef unsigned char Dict_char; +typedef unsigned Dict_ptr; + struct Dict_head { char magic_str[8]; int page_size; @@ -54,15 +54,15 @@ typedef struct Dict_file_struct { int cache; BFile bf; - + struct Dict_file_block *all_blocks; struct Dict_file_block *free_list; struct Dict_file_block **hash_array; - + struct Dict_file_block *lru_back, *lru_front; int hash_size; void *all_data; - + int block_size; int hits; int misses; @@ -74,6 +74,12 @@ struct Dict_struct { Dict_BFile dbf; const char **(*grep_cmap)(void *vp, const char **from, int len); void *grep_cmap_data; + /** number of split page operations, since dict_open */ + zint no_split; + /** number of insert operations, since dict_open */ + zint no_insert; + /** number of lookup operations, since dict_open */ + zint no_lookup; struct Dict_head head; }; @@ -86,6 +92,13 @@ Dict_BFile dict_bf_open (BFiles bfs, const char *name, int block_size, int dict_bf_close (Dict_BFile dbf); void dict_bf_compact (Dict_BFile dbf); +int dict_strcmp (const Dict_char *s1, const Dict_char *s2); + +int dict_strncmp (const Dict_char *s1, const Dict_char *s2, size_t n); + +int dict_strlen (const Dict_char *s); + + #define DICT_EOS 0 #define DICT_type(x) 0[(Dict_ptr*) x] #define DICT_backptr(x) 1[(Dict_ptr*) x] @@ -107,13 +120,14 @@ void dict_bf_compact (Dict_BFile dbf); dir[0..nodir-1] ptr,info,string */ - + YAZ_END_CDECL #endif /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab