xref: /haiku/src/apps/text_search/FileIterator.h (revision 90ce3113565f4be9dfbf7cf4e17d00e62d43810b)
11fffad3fSStephan Aßmus /*
21fffad3fSStephan Aßmus  * Copyright (c) 2008 Stephan Aßmus <superstippi@gmx.de>
31fffad3fSStephan Aßmus  * Copyright (c) 1998-2007 Matthijs Hollemans
4*90ce3113SAugustin Cavalier  * All rights reserved. Distributed under the terms of the MIT License.
51fffad3fSStephan Aßmus  */
61fffad3fSStephan Aßmus #ifndef FILE_ITERATOR_H
71fffad3fSStephan Aßmus #define FILE_ITERATOR_H
81fffad3fSStephan Aßmus 
91fffad3fSStephan Aßmus class BEntry;
101fffad3fSStephan Aßmus 
111fffad3fSStephan Aßmus // Provides an interface to retrieve the next file that should be grepped
121fffad3fSStephan Aßmus // for the search string.
131fffad3fSStephan Aßmus class FileIterator {
141fffad3fSStephan Aßmus public:
1568450777SStephan Aßmus 								FileIterator();
161fffad3fSStephan Aßmus 	virtual						~FileIterator();
171fffad3fSStephan Aßmus 
1868450777SStephan Aßmus 	virtual	bool				IsValid() const = 0;
191fffad3fSStephan Aßmus 
201fffad3fSStephan Aßmus 	// Returns the full path name of the next file.
2168450777SStephan Aßmus 	virtual	bool				GetNextName(char* buffer) = 0;
221fffad3fSStephan Aßmus 
233b364dddSStephan Aßmus 	// Tells the Grepper whether the targets wants to know about negative hits.
243b364dddSStephan Aßmus 	virtual	bool				NotifyNegatives() const = 0;
253b364dddSStephan Aßmus 
2668450777SStephan Aßmus protected:
271fffad3fSStephan Aßmus 	// Determines whether we can grep a file.
2868450777SStephan Aßmus 			bool				_ExamineFile(BEntry& entry, char* buffer,
2968450777SStephan Aßmus 									bool textFilesOnly);
301fffad3fSStephan Aßmus };
311fffad3fSStephan Aßmus 
321fffad3fSStephan Aßmus #endif // FILE_ITERATOR_H
33