#pragma once #include "Cache.h" namespace clice { struct Rule { /// The file name pattern. std::string pattern; /// ... std::vector append; /// ... std::vector remove; std::string readonly; std::string header; std::vector context; }; /// This class is responsible for managing all opened files. class Scheduler { public: Scheduler(CompilationDatabase& database, llvm::ArrayRef rules) : database(database), rules(rules) {} async::Task<> open(llvm::StringRef path); async::Task<> update(llvm::StringRef path); async::Task<> close(llvm::StringRef path); private: CompilationDatabase& database; llvm::ArrayRef rules; struct File {}; llvm::StringMap files; }; } // namespace clice