X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=hooke%2Fengine.py;h=ca4461d9bc6800de936b6f740d667ca02c7c969a;hb=d0af162936b5ad854f96ea3db0e3c3697c1ecc0a;hp=c70ee6b444ceb2d948bd46fb864528cc4c95af45;hpb=349450dff9d3eb5a020bf4a8e29e4e4658274e60;p=hooke.git diff --git a/hooke/engine.py b/hooke/engine.py index c70ee6b..ca4461d 100644 --- a/hooke/engine.py +++ b/hooke/engine.py @@ -1,9 +1,30 @@ +# Copyright (C) 2010 W. Trevor King +# +# This file is part of Hooke. +# +# Hooke is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# Hooke is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General +# Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with Hooke. If not, see +# . + """The `engine` module provides :class:`CommandEngine` for executing :class:`hooke.command.Command`\s. """ +import logging + from .ui import CloseEngine, CommandMessage + class CommandEngine (object): def run(self, hooke, ui_to_command_queue, command_to_ui_queue): """Get a :class:`hooke.ui.QueueMessage` from the incoming @@ -19,10 +40,16 @@ class CommandEngine (object): `command_to_ui_queue`, at which point the `CommandEngine` will be ready to receive the next :class:`hooke.ui.QueueMessage`. """ + log = logging.getLogger('hooke') while True: + log.debug('engine waiting for command') msg = ui_to_command_queue.get() if isinstance(msg, CloseEngine): + command_to_ui_queue.put(hooke) + log.debug( + 'engine closing, placed hooke instance in return queue') break assert isinstance(msg, CommandMessage), type(msg) + log.debug('engine running %s' % msg.command.name) msg.command.run(hooke, ui_to_command_queue, command_to_ui_queue, **msg.arguments)