From bd9e6617827818fd043452c08c606f07b78014a0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- .../modules/dbsearchengine2/algorithms.h | 157 +++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 kbabel/kbabeldict/modules/dbsearchengine2/algorithms.h (limited to 'kbabel/kbabeldict/modules/dbsearchengine2/algorithms.h') diff --git a/kbabel/kbabeldict/modules/dbsearchengine2/algorithms.h b/kbabel/kbabeldict/modules/dbsearchengine2/algorithms.h new file mode 100644 index 00000000..5f9ee682 --- /dev/null +++ b/kbabel/kbabeldict/modules/dbsearchengine2/algorithms.h @@ -0,0 +1,157 @@ +// +// C++ Interface: strategies +// +// Description: +// +// +// Author: Andrea Rizzi , (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef DBSE2_STRATEGIES_H +#define DBSE2_STRATEGIES_H + +#include "database.h" +#include "chunk.h" +#include + +class AbstractSearchAlgorithm : public QObject +{ + Q_OBJECT + public: + + typedef QValueList ResultList; + + AbstractSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets) + { + di=dbi; + settings=sets; + } + /** + * this contains the algo and return some results. + */ + virtual DataBaseInterface::ResultList exec(const QString& query)=0; + + signals: + void newResult(QueryResult); + + protected: + DataBaseInterface *di; + DBSESettings *settings; + +}; + + + +class ExactSearchAlgorithm : public AbstractSearchAlgorithm +{ + Q_OBJECT + public: + ExactSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets) : AbstractSearchAlgorithm(dbi,sets) {} + + virtual DataBaseInterface::ResultList exec(const QString& query); +}; + +class AlphaSearchAlgorithm : public AbstractSearchAlgorithm +{ + Q_OBJECT + public: + AlphaSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets) : AbstractSearchAlgorithm(dbi,sets) {} + + virtual DataBaseInterface::ResultList exec(const QString& query); +}; + +class SentenceArchiveSearchAlgorithm : public AbstractSearchAlgorithm +{ + Q_OBJECT + public: + SentenceArchiveSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets) ; + + virtual DataBaseInterface::ResultList exec(const QString& query); +}; + +class ChunkByChunkSearchAlgorithm : public AbstractSearchAlgorithm +{ + Q_OBJECT + public: + ChunkByChunkSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets); + + virtual DataBaseInterface::ResultList exec(const QString& query); + + void setChunkFactory(AbstractChunkFactory *_factory) + { + factory=_factory; + } + protected: + AbstractChunkFactory *factory; +}; + +class FuzzyChunkSearchAlgorithm : public AbstractSearchAlgorithm +{ + Q_OBJECT + public: + FuzzyChunkSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets); + + virtual DataBaseInterface::ResultList exec(const QString& query); + void setChunkFactory(AbstractChunkFactory *_factory) + { + factory=_factory; + } + protected: + AbstractChunkFactory *factory; +}; + +class GenericSearchAlgorithm : public AbstractSearchAlgorithm +{ + Q_OBJECT + public: + GenericSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets) ; + + virtual ResultList exec(const QString& query); + + void addAlgorithm(AbstractSearchAlgorithm *algo); + void setMaxResultNumber(uint num){maxResults=num;} + + + protected: + QValueList algoChain; + uint maxResults; + }; + + +class CorrelationSearchAlgorithm : public AbstractSearchAlgorithm +{ + Q_OBJECT + public: + CorrelationSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets) : AbstractSearchAlgorithm(dbi,sets) {} + virtual ResultList exec(const QString& query); +}; + + + +class SingleWordSearchAlgorithm : public GenericSearchAlgorithm +{ + Q_OBJECT + public: + SingleWordSearchAlgorithm(DataBaseInterface *dbi,DBSESettings *sets); + virtual DataBaseInterface::ResultList exec(const QString& query); + + private: + ExactSearchAlgorithm exact; + AlphaSearchAlgorithm alpha; + SentenceArchiveSearchAlgorithm sentence; + CorrelationSearchAlgorithm corr; + ChunkByChunkSearchAlgorithm chunk; + CaseBasedWordChunkFactory casefactory; +}; + + +class UpdateChunkIndexAlgorithm +{ + +}; + + + +#endif //DBSE2_STRATEGIES_H -- cgit v1.2.3