1/*
2 * Copyright 2010, Haiku.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Clemens Zeidler <haiku@clemens-zeidler.de>
7 */
8#ifndef FULL_TEXT_ANALYSER_H
9#define FULL_TEXT_ANALYSER_H
10
11
12#include "IndexServerAddOn.h"
13
14#include <Path.h>
15
16#include "TextDataBase.h"
17
18
19const char* kFullTextDirectory = "FullTextAnalyser";
20
21
22class FullTextAnalyser : public FileAnalyser {
23public:
24								FullTextAnalyser(BString name,
25									const BVolume& volume);
26								~FullTextAnalyser();
27
28			status_t			InitCheck();
29
30			void				AnalyseEntry(const entry_ref& ref);
31			void				DeleteEntry(const entry_ref& ref);
32			void				MoveEntry(const entry_ref& oldRef,
33									const entry_ref& newRef);
34			void				LastEntry();
35
36private:
37	inline	bool				_InterestingEntry(const entry_ref& ref);
38	inline	bool				_IsInIndexDirectory(const entry_ref& ref);
39
40			TextWriteDataBase*	fWriteDataBase;
41			BPath				fDataBasePath;
42
43			uint32				fNUncommited;
44};
45
46
47class FullTextAddOn : public IndexServerAddOn {
48public:
49								FullTextAddOn(image_id id, const char* name);
50
51			FileAnalyser*		CreateFileAnalyser(const BVolume& volume);
52};
53
54#endif
55