Interactive mode in dispatcher
diff --git a/dispatcher-v2/JudgerThread.cpp b/dispatcher-v2/JudgerThread.cpp
index 95806f9..94210bd 100644
--- a/dispatcher-v2/JudgerThread.cpp
+++ b/dispatcher-v2/JudgerThread.cpp
@@ -40,6 +40,7 @@
status.language AS language, \
status.pid AS pid, \
problem.ignore_noc AS ignore_noc \
+ problem.is_interactive AS is_interactive \
FROM status, problem \
WHERE status.pid = problem.pid AND runid = '" + runid + "' \
")[0];
@@ -58,6 +59,10 @@
bott->Settype(NEED_JUDGE);
}
+ if (info["is_interactive"] == "1") {
+ bott->Settype(DO_INTERACTIVE);
+ }
+
// load additional info from problem table
info = db->Getall_results("\
SELECT number_of_testcase, time_limit, case_time_limit, memory_limit, special_judge_status, vname, vid \
diff --git a/dispatcher-v2/dispatcher.h b/dispatcher-v2/dispatcher.h
index e8cbdda..1639b25 100644
--- a/dispatcher-v2/dispatcher.h
+++ b/dispatcher-v2/dispatcher.h
@@ -42,6 +42,7 @@
#define DO_CHALLENGE 4
#define DO_PRETEST 5
#define DO_TESTALL 6
+#define DO_INTERACTIVE 7
// from judger to dispatcher, message type
#define JUDGER_STATUS_REPORT 1001