diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-10-07 12:22:10 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-10-16 13:09:23 -0400 |
commit | 216905ceca731b9761ee52f176b5d113363ef824 (patch) | |
tree | b781a1ed9de60c774e331bc7decbd3e939c4395b /klippy/klippy.py | |
parent | fedf90680e2fa83cad0ff350c28f2c3c71b45f1f (diff) | |
download | kutter-216905ceca731b9761ee52f176b5d113363ef824.tar.gz kutter-216905ceca731b9761ee52f176b5d113363ef824.tar.xz kutter-216905ceca731b9761ee52f176b5d113363ef824.zip |
klippy: Add a basic event dispatch mechanism
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/klippy.py')
-rw-r--r-- | klippy/klippy.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/klippy/klippy.py b/klippy/klippy.py index e8f737f7..09a6b3ad 100644 --- a/klippy/klippy.py +++ b/klippy/klippy.py @@ -58,6 +58,7 @@ class Printer: self.is_shutdown = False self.run_result = None self.state_cb = [gc.printer_state] + self.event_handlers = {} def get_start_args(self): return self.start_args def get_reactor(self): @@ -188,6 +189,10 @@ class Printer: def invoke_async_shutdown(self, msg): self.reactor.register_async_callback( (lambda e: self.invoke_shutdown(msg))) + def register_event_handler(self, event, callback): + self.event_handlers.setdefault(event, []).append(callback) + def send_event(self, event, *params): + return [cb(*params) for cb in self.event_handlers.get(event, [])] def request_exit(self, result): self.run_result = result self.reactor.end() |