summaryrefslogtreecommitdiff
path: root/server/prolog_session.py
diff options
context:
space:
mode:
authorAleš Smodiš <aless@guru.si>2015-08-25 19:05:00 +0200
committerAleš Smodiš <aless@guru.si>2015-08-25 19:05:00 +0200
commit959f5f0f71b51ac47870a40b09157c6deef73a52 (patch)
tree5115b49494f1fff36865206d83fcea15d012f1fd /server/prolog_session.py
parent88a5cd83b47a9dfb5a832936095c7b99ce0d8179 (diff)
Work on handling activity trace.
Diffstat (limited to 'server/prolog_session.py')
-rw-r--r--server/prolog_session.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/server/prolog_session.py b/server/prolog_session.py
index c21d929..039f40a 100644
--- a/server/prolog_session.py
+++ b/server/prolog_session.py
@@ -37,9 +37,11 @@ class PrologSession(object):
No properties are accessible; use getters and setters instead.
Values are passed by value instead of by reference (deep copy!).
"""
- def __init__(self):
+ def __init__(self, user_session):
+ self._user_session = user_session # the owning session
self._access_lock = threading.Lock()
self._engine_id = None
+ self._problem_id = -1
def run(self, code):
with self._access_lock:
@@ -78,6 +80,7 @@ class PrologSession(object):
if self._engine_id is not None:
prolog.engine.stop(self._engine_id)
self._engine_id = None
+ self._problem_id = -1
return [], 'ok', False
def __del__(self):
@@ -116,4 +119,6 @@ class PrologSession(object):
if status == 'ok':
more_messages, status, have_more = self.query(query)
messages.extend(more_messages)
+ self._problem_id = problem_id
+ self._user_session.update_solution(problem_id, [], program)
return messages, status, have_more