From a306d46a1ee07504b56f8f1115b8693fdf7b92b5 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 15 Sep 2014 00:41:45 -0400 Subject: allow different kinds of message publishing --- pubsub.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'pubsub.py') diff --git a/pubsub.py b/pubsub.py index 6b860e0..b5faf22 100644 --- a/pubsub.py +++ b/pubsub.py @@ -10,7 +10,21 @@ class Publisher(object): if who in self.subscribers: self.subscribers.remove(who) - def publish(self, message, *args): + def request_all(self, message, *args): + ret = [] + for subscriber in self.subscribers: + method = "request_" + message + if hasattr(subscriber, method): + ret.append(getattr(subscriber, method)(*args)) + return ret + + def request_one(self, message, *args): + for subscriber in self.subscribers: + method = "request_" + message + if hasattr(subscriber, method): + return getattr(subscriber, method)(*args) + + def notify(self, message, *args): for subscriber in self.subscribers: method = "msg_" + message if hasattr(subscriber, method): -- cgit v1.2.3-54-g00ecf