/**************************************************************************** | |
** | |
** Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team. | |
** All rights reserved. | |
** | |
** Portion Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). | |
** All rights reserved. | |
** | |
** This file may be used under the terms of the GNU Lesser General Public | |
** License version 2.1 as published by the Free Software Foundation and | |
** appearing in the file LICENSE.LGPL included in the packaging of this file. | |
** Please review the following information to ensure the GNU Lesser General | |
** Public License version 2.1 requirements will be met: | |
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | |
** | |
****************************************************************************/ | |
#ifndef QSEARCHABLE_P_H | |
#define QSEARCHABLE_P_H | |
// | |
// W A R N I N G | |
// ------------- | |
// | |
// This file is not part of the Qt API. It exists for the convenience | |
// of the help generator tools. This header file may change from version | |
// to version without notice, or even be removed. | |
// | |
// We mean it. | |
// | |
#include "qhits_p.h" | |
#include "qsort_p.h" | |
#include "qquery_p.h" | |
#include "qfilter_p.h" | |
#include "qdocument_p.h" | |
#include "qindexreader_p.h" | |
#include "qclucene_global_p.h" | |
#include <QtCore/QList> | |
#include <QtCore/QString> | |
#include <QtCore/QSharedDataPointer> | |
#include <QtCore/QSharedData> | |
CL_NS_DEF(search) | |
class Searcher; | |
CL_NS_END | |
CL_NS_USE(search) | |
QT_BEGIN_NAMESPACE | |
class QCLuceneHits; | |
class QCLuceneSearcher; | |
class QCLuceneIndexSearcher; | |
class QCLuceneMultiSearcher; | |
class QHELP_EXPORT QCLuceneSearchablePrivate : public QSharedData | |
{ | |
public: | |
QCLuceneSearchablePrivate(); | |
QCLuceneSearchablePrivate(const QCLuceneSearchablePrivate &other); | |
~QCLuceneSearchablePrivate(); | |
Searcher *searchable; | |
bool deleteCLuceneSearchable; | |
private: | |
QCLuceneSearchablePrivate &operator=(const QCLuceneSearchablePrivate &other); | |
}; | |
class QHELP_EXPORT QCLuceneSearchable | |
{ | |
public: | |
virtual ~QCLuceneSearchable(); | |
protected: | |
friend class QCLuceneSearcher; | |
friend class QCLuceneIndexSearcher; | |
friend class QCLuceneMultiSearcher; | |
QSharedDataPointer<QCLuceneSearchablePrivate> d; | |
private: | |
QCLuceneSearchable(); | |
}; | |
class QHELP_EXPORT QCLuceneSearcher : public QCLuceneSearchable | |
{ | |
public: | |
QCLuceneSearcher(); | |
virtual ~QCLuceneSearcher(); | |
QCLuceneHits search(const QCLuceneQuery &query); | |
QCLuceneHits search(const QCLuceneQuery &query, const QCLuceneFilter &filter); | |
QCLuceneHits search(const QCLuceneQuery &query, const QCLuceneSort &sort); | |
QCLuceneHits search(const QCLuceneQuery &query, const QCLuceneFilter &filter, | |
const QCLuceneSort &sort); | |
protected: | |
friend class QCLuceneHits; | |
}; | |
class QHELP_EXPORT QCLuceneIndexSearcher : public QCLuceneSearcher | |
{ | |
public: | |
QCLuceneIndexSearcher(const QString &path); | |
QCLuceneIndexSearcher(const QCLuceneIndexReader &reader); | |
~QCLuceneIndexSearcher(); | |
void close(); | |
qint32 maxDoc() const; | |
QCLuceneIndexReader getReader(); | |
bool doc(qint32 i, QCLuceneDocument &document); | |
private: | |
QCLuceneIndexReader reader; | |
}; | |
class QHELP_EXPORT QCLuceneMultiSearcher : public QCLuceneSearcher | |
{ | |
public: | |
QCLuceneMultiSearcher(const QList<QCLuceneSearchable> searchables); | |
~QCLuceneMultiSearcher(); | |
void close(); | |
qint32 maxDoc() const; | |
qint32 subDoc(qint32 index) const; | |
qint32 subSearcher(qint32 index) const; | |
qint32 searcherIndex(qint32 index) const; | |
bool doc(qint32 i, QCLuceneDocument &document); | |
}; | |
QT_END_NAMESPACE | |
#endif // QSEARCHABLE_P_H |