diff options
author | Aleš Smodiš <aless@guru.si> | 2015-10-04 19:43:09 +0200 |
---|---|---|
committer | Aleš Smodiš <aless@guru.si> | 2015-10-04 19:43:09 +0200 |
commit | 361f8245079b625560449324faf111ed6fcf3b1b (patch) | |
tree | a484991b6e3456545d6d5437a17201ab0a8e7b8a /server/__init__.py | |
parent | 8c61a1980c973c649a2d9b3b9da67f2a680f4139 (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__.py | 32 |
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'] |