summaryrefslogtreecommitdiff
path: root/server/__init__.py
diff options
context:
space:
mode:
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']