-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdirReader.h
32 lines (24 loc) · 840 Bytes
/
dirReader.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//
// dirReader.hpp
//
#ifndef __DIR_READER_H__
#define __DIR_READER_H__
#include <string>
class DirReader
{
public:
DirReader() = default;
virtual ~DirReader() = default;
bool Read(const char* dirName, void* param);
bool Read(const std::string& dirName, void* param) { return Read(dirName.c_str(), param); }
void Abort(const std::string& errMsg) { mAbort = true; mErrMsg = errMsg; }
const std::string& GetError() { return mErrMsg; }
// For derived class to override
virtual void* OnDirectory(const char* dirName, const char* baseName, void* param) = 0;
virtual void OnDirectoryEnd(const char* dirName, void* param) = 0;
virtual void OnFile(const char* dirName, const char* baseName, void* param) = 0;
protected:
bool mAbort{false};
std::string mErrMsg;
};
#endif // __DIR_READER_H__