From b27e1ce15e9eb027699f1b31992af05d913da301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Tue, 19 Mar 2013 21:07:47 +0100 Subject: [PATCH] User factory method for creating SocketConnection object for Tornadio2 --- octoprint/server.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/octoprint/server.py b/octoprint/server.py index c2384cd..d59226e 100644 --- a/octoprint/server.py +++ b/octoprint/server.py @@ -32,7 +32,7 @@ userManager = None #~~ Printer state class PrinterStateConnection(tornadio2.SocketConnection): - def __init__(self, session, endpoint=None): + def __init__(self, printer, gcodeManager, userManager, session, endpoint=None): tornadio2.SocketConnection.__init__(self, session, endpoint) self._logger = logging.getLogger(__name__) @@ -44,6 +44,10 @@ class PrinterStateConnection(tornadio2.SocketConnection): self._messageBacklog = [] self._messageBacklogMutex = threading.Lock() + self._printer = printer + self._gcodeManager = gcodeManager + self._userManager = userManager + def on_open(self, info): self._logger.info("New connection from client") # Use of global here is smelly @@ -541,7 +545,7 @@ class Server(): logger.info("Listening on http://%s:%d" % (self._host, self._port)) app.debug = self._debug - self._router = tornadio2.TornadioRouter(PrinterStateConnection) + self._router = tornadio2.TornadioRouter(self._createSocketConnection) self._tornado_app = Application(self._router.urls + [ (".*", FallbackHandler, {"fallback": WSGIContainer(app)}) @@ -550,6 +554,10 @@ class Server(): self._server.listen(self._port, address=self._host) IOLoop.instance().start() + def _createSocketConnection(self, session, endpoint=None): + global printer, gcodeManager, userManager + return PrinterStateConnection(printer, gcodeManager, userManager, session, endpoint) + def _initSettings(self, configfile, basedir): s = settings(init=True, basedir=basedir, configfile=configfile)