Mercurial > libervia-pubsub
diff idavoll/memory_storage.py @ 120:8892331314c8
Change Node.add_subscription() to return a Failure when a subscription already
exists or return nothing on success.
Added get_subscription().
Return Failure from Node.remove_subscription() when subscription does not
exist.
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Tue, 12 Apr 2005 12:20:01 +0000 |
parents | 97f10cfea28c |
children | ffc3c706b0fb |
line wrap: on
line diff
--- a/idavoll/memory_storage.py Tue Apr 12 12:16:54 2005 +0000 +++ b/idavoll/memory_storage.py Tue Apr 12 12:20:01 2005 +0000 @@ -96,19 +96,28 @@ def get_affiliation(self, entity): return defer.succeed(self._affiliations.get(entity.full())) - def add_subscription(self, subscriber, state): + def get_subscription(self, subscriber): try: subscription = self._subscriptions[subscriber.full()] - except: - subscription = Subscription(state) - self._subscriptions[subscriber.full()] = subscription + except KeyError: + state = None + else: + state = subscription.state + return defer.succeed(state) - return defer.succeed({'node': self.id, - 'jid': subscriber, - 'subscription': subscription.state}) + def add_subscription(self, subscriber, state): + if self._subscriptions.get(subscriber.full()): + return defer.fail(storage.SubscriptionExists()) + + subscription = Subscription(state) + self._subscriptions[subscriber.full()] = subscription + return defer.succeed(None) def remove_subscription(self, subscriber): - del self._subscriptions[subscriber.full()] + try: + del self._subscriptions[subscriber.full()] + except KeyError: + return defer.fail(storage.SubscriptionNotFound()) return defer.succeed(None)