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 #ifndef _terimber_fuzzyaccess_h_
00029 #define _terimber_fuzzyaccess_h_
00030
00031 #include "base/memory.h"
00032 #include "base/list.h"
00033 #include "fuzzy/fuzzywrapper.h"
00034
00037 class fuzzy_matcher
00038 {
00039 public:
00041 virtual
00042 ~fuzzy_matcher()
00043 {
00044 }
00045
00046
00047
00051 virtual
00052 size_t
00053 add( const char* phrase,
00054 TERIMBER::byte_allocator& all
00055 ) = 0;
00056
00059 virtual
00060 bool
00061 remove( const char* phrase,
00062 TERIMBER::byte_allocator& all
00063 ) = 0;
00066 virtual
00067 bool
00068 remove( size_t ident,
00069 TERIMBER::byte_allocator& all
00070 ) = 0;
00072 virtual
00073 bool
00074 match( ngram_quality nq,
00075 phonetic_quality pq,
00076 const char* phrase,
00077 TERIMBER::byte_allocator& all,
00078 TERIMBER::byte_allocator& tmp,
00079 TERIMBER::_list< const char* >& suggestions
00080 ) const = 0;
00081
00083 virtual
00084 bool match( ngram_quality nq,
00085 phonetic_quality fq,
00086 const char* phrase,
00087 TERIMBER::byte_allocator& all,
00088 TERIMBER::byte_allocator& tmp,
00089 TERIMBER::_list< size_t >& suggestions
00090 ) const = 0;
00091
00093 virtual
00094 void
00095 reset() = 0;
00096 };
00097
00100 class fuzzy_matcher_factory
00101 {
00102 public:
00104 fuzzy_matcher*
00105 get_fuzzy_matcher(size_t memory_usage
00106 );
00107 };
00108
00109 #endif //_terimber_fuzzyaccess_h_