#ifndef FILE_REGISTER_H #define FILE_REGISTER_H #include #include #include #include "utility/file/FilePath.h" class FileManager; class FileRegister { public: FileRegister(const FileManager* fileManager, const std::vector& filePaths); const FileManager* getFileManager() const; const std::vector& getSourceFilePaths() const; std::vector getUnparsedIncludeFilePaths() const; bool includeFileIsParsing(const FilePath& filePath) const; bool includeFileIsParsed(const FilePath& filePath) const; void markIncludeFileParsing(const std::string& filePath); void markParsingIncludeFilesParsed(); private: enum ParseState { STATE_UNPARSED, STATE_PARSING, STATE_PARSED }; const FileManager* m_fileManager; std::vector m_sourceFilePaths; std::map m_includeFilePaths; }; #endif // FILE_REGISTER_H