#include "nsCOMPtr.h" #include "Xpclucene.h" #include "nsLuceneFactory.h" #include "nsLuceneIndexReader.h" #include "nsLuceneDocument.h" #include "nsLuceneFactory.h" #include "CLucene/CLConfig.h" #include "CLucene.h" NS_IMPL_ISUPPORTS1(nsLuceneIndexReader, nsILuceneIndexReader) nsLuceneIndexReader::nsLuceneIndexReader(lucene::index::IndexReader *pIndexReader) { mIndexReader = pIndexReader; } lucene::index::IndexReader * nsLuceneIndexReader::getIndexReader() { return mIndexReader; } nsLuceneIndexReader::~nsLuceneIndexReader() { delete mIndexReader; } NS_IMETHODIMP nsLuceneIndexReader::MaxDoc(PRInt16 *_retval) { LUCENETRYCATCH_START *_retval = mIndexReader->maxDoc(); return NS_OK; LUCENETRYCATCH_END } NS_IMETHODIMP nsLuceneIndexReader::NumDocs(PRInt16 *_retval) { LUCENETRYCATCH_START *_retval = mIndexReader->numDocs(); return NS_OK; LUCENETRYCATCH_END } NS_IMETHODIMP nsLuceneIndexReader::Document(PRInt16 n, nsILuceneDocument **_retval) { LUCENETRYCATCH_START lucene::document::Document* document = mIndexReader->document(n); if(document != NULL) { nsCOMPtr luceneDocument = new nsLuceneDocument(document, true); NS_ENSURE_TRUE(luceneDocument, NS_ERROR_OUT_OF_MEMORY); *_retval = luceneDocument; NS_ADDREF(*_retval); } else { *_retval = NULL; } return NS_OK; LUCENETRYCATCH_END } NS_IMETHODIMP nsLuceneIndexReader::DeleteDoc(PRInt16 n) { LUCENETRYCATCH_START mIndexReader->deleteDoc(n); return NS_OK; LUCENETRYCATCH_END } NS_IMETHODIMP nsLuceneIndexReader::Close() { LUCENETRYCATCH_START mIndexReader->close(); return NS_OK; LUCENETRYCATCH_END } NS_IMETHODIMP nsLuceneIndexReader::Commit() { LUCENETRYCATCH_START mIndexReader->commit(); return NS_OK; LUCENETRYCATCH_END }