summaryrefslogtreecommitdiff
path: root/server/prolog_session.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/prolog_session.py')
-rw-r--r--server/prolog_session.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/server/prolog_session.py b/server/prolog_session.py
index ebd53fb..3de861c 100644
--- a/server/prolog_session.py
+++ b/server/prolog_session.py
@@ -3,6 +3,7 @@
import operator
import threading
import prolog.engine
+import server
import server.user_session
from db.models import CodeqUser, Problem
from . import problems
@@ -31,7 +32,7 @@ def format_prolog_output(reply, output):
return messages, 'ok', False # TODO: is it possible to reach this return statement?
-class PrologSession(object):
+class PrologSession(server.LanguageSession):
"""Abstracts a Prolog session.
Only public methods are available to the outside world due to the use of multiprocessing managers.
Therefore prefix any private methods with an underscore (_).
@@ -75,7 +76,7 @@ class PrologSession(object):
except Exception as e:
return [str(e)], 'error', False
- def end(self):
+ def destroy(self): # this method was previously named: end()
"""Stops the Prolog engine."""
with self._access_lock:
if self._engine_id is not None:
@@ -158,3 +159,6 @@ class PrologSession(object):
def get_problem_id(self):
return self._problem_id
+
+server.language_session_handlers['prolog'] = lambda user_session, problem_id, language_identifier, group_identifier, problem_identifier: PrologSession()
+