⛏️ index : haiku.git

/*
 * Copyright 2010, Haiku.
 * Distributed under the terms of the MIT License.
 *
 * Authors:
 *		Clemens Zeidler <haiku@clemens-zeidler.de>
 */
#ifndef FULL_TEXT_ANALYSER_H
#define FULL_TEXT_ANALYSER_H


#include "IndexServerAddOn.h"

#include <Path.h>

#include "TextDataBase.h"


const char* kFullTextDirectory = "FullTextAnalyser";


class FullTextAnalyser : public FileAnalyser {
public:
								FullTextAnalyser(BString name,
									const BVolume& volume);
								~FullTextAnalyser();

			status_t			InitCheck();

			void				AnalyseEntry(const entry_ref& ref);
			void				DeleteEntry(const entry_ref& ref);
			void				MoveEntry(const entry_ref& oldRef,
									const entry_ref& newRef);
			void				LastEntry();

private:
	inline	bool				_InterestingEntry(const entry_ref& ref);
	inline	bool				_IsInIndexDirectory(const entry_ref& ref);

			TextWriteDataBase*	fWriteDataBase;
			BPath				fDataBasePath;

			uint32				fNUncommited;
};


class FullTextAddOn : public IndexServerAddOn {
public:
								FullTextAddOn(image_id id, const char* name);

			FileAnalyser*		CreateFileAnalyser(const BVolume& volume);
};

#endif