Files
clice/include/Server/Scheduler .h
2024-09-08 22:14:44 +08:00

27 lines
595 B
C++

#include <llvm/ADT/StringMap.h>
#include <Support/JSON.h>
#include <AST/Preamble.h>
#include <AST/ParsedAST.h>
namespace clice {
/// responsible for file management and scheduling tasks.
class Scheduler {
private:
struct TU {
using message = llvm::unique_function<json::Object()>;
std::string content;
std::deque<message> messages;
std::unique_ptr<ParsedAST> ast;
std::unique_ptr<Preamble> preamble;
};
public:
void update(std::string_view path, std::string_view content);
private:
llvm::StringMap<TU> files;
};
} // namespace clice