/*------------------------------------------------------------------------------
* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
*
* Distributable under the terms of either the Apache License (Version 2.0) or
* the GNU Lesser General Public License, as specified in the COPYING file.
------------------------------------------------------------------------------*/
#ifndef _lucene_index_MultipleTermPositions_
#define _lucene_index_MultipleTermPositions_
#include "Terms.h"
#include "CLucene/util/Array.h"
CL_NS_DEF(index)
class Term;
class IndexReader;
class CLUCENE_EXPORT MultipleTermPositions : public TermPositions {
private:
class TermPositionsQueue;
class IntQueue;
int32_t _doc;
int32_t _freq;
TermPositionsQueue* _termPositionsQueue;
IntQueue* _posList;
public:
/**
* Creates a new MultipleTermPositions instance.
*
* @exception IOException
*/
MultipleTermPositions(IndexReader* indexReader, const CL_NS(util)::ArrayBase* terms);
virtual ~MultipleTermPositions();
bool next();
int32_t nextPosition();
bool skipTo(const int32_t target);
int32_t doc() const;
int32_t freq() const;
void close();
/**
* Not implemented.
* @throws UnsupportedOperationException
*/
void seek(Term*);
/**
* Not implemented.
* @throws UnsupportedOperationException
*/
void seek(TermEnum*);
/**
* Not implemented.
* @throws UnsupportedOperationException
*/
int32_t read(int32_t*, int32_t*,int32_t);
/**
* Not implemented.
* @throws UnsupportedOperationException
*/
int32_t getPayloadLength() const;
/**
* Not implemented.
* @throws UnsupportedOperationException
*/
uint8_t* getPayload(uint8_t*);
/**
*
* @return false
*/
// Java-TODO: Remove warning after API has been finalized
bool isPayloadAvailable() const;
TermDocs* __asTermDocs();
TermPositions* __asTermPositions();
};
CL_NS_END
#endif