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