From 361f8245079b625560449324faf111ed6fcf3b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ale=C5=A1=20Smodi=C5=A1?= Date: Sun, 4 Oct 2015 19:43:09 +0200 Subject: 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. --- server/__init__.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) (limited to 'server/__init__.py') 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'] -- cgit v1.2.1