summaryrefslogtreecommitdiff
path: root/server/__init__.py
diff options
context:
space:
mode:
authorAleš Smodiš <aless@guru.si>2015-10-04 19:43:09 +0200
committerAleš Smodiš <aless@guru.si>2015-10-04 19:43:09 +0200
commit361f8245079b625560449324faf111ed6fcf3b1b (patch)
treea484991b6e3456545d6d5437a17201ab0a8e7b8a /server/__init__.py
parent8c61a1980c973c649a2d9b3b9da67f2a680f4139 (diff)
Unification of language session implementations. Added load_problem and end_problem actions so handlers get appropriately created and destroyed upon loading and unloading the problem solving screen.
Diffstat (limited to 'server/__init__.py')
-rw-r--r--server/__init__.py32
1 files changed, 26 insertions, 6 deletions
diff --git a/server/__init__.py b/server/__init__.py
index 526c6f9..e174626 100644
--- a/server/__init__.py
+++ b/server/__init__.py
@@ -1,10 +1,30 @@
# coding=utf-8
-from . import user_session
-from . import prolog_session
-from . import python_session
-from . import robot_session
-from . import socket
+__all__ = ['socket', 'handlers', 'user_session', 'prolog_session', 'python_session', 'robot_session', 'problems', 'LanguageSession']
+
+# language session handlers are added as their modules are loaded and processed
+language_session_handlers = {}
+
+# the base class for all language session handlers
+class LanguageSession(object):
+
+ def destroy(self):
+ pass
+
+ def hint(self, sid, problem_id, program):
+ pass
+
+ def test(self, sid, problem_id, program):
+ pass
+
+# these imports must be made after LanguageSession is defined, otherwise they won't succeed
+# the order of imports is important! first language sessions, then user_session
+
+import server.prolog_session
+import server.python_session
+import server.robot_session
+import server.user_session
+import server.socket
import server.problems
+import server.handlers
-__all__ = ['socket', 'handlers', 'user_session', 'prolog_session', 'python_session', 'robot_session', 'problems', 'start']