diff options
Diffstat (limited to 'sugar/p2p/Group.py')
-rw-r--r-- | sugar/p2p/Group.py | 56 |
1 files changed, 24 insertions, 32 deletions
diff --git a/sugar/p2p/Group.py b/sugar/p2p/Group.py index faa6041..dedbc1e 100644 --- a/sugar/p2p/Group.py +++ b/sugar/p2p/Group.py @@ -1,26 +1,21 @@ -from Buddy import Buddy -from Buddy import Owner -from Buddy import PRESENCE_SERVICE_TYPE -from Service import Service -from sugar.p2p.model.Store import Store +import avahi + import presence +from Buddy import * +from Service import * -class Group: - SERVICE_ADDED = "service_added" - SERVICE_REMOVED = "service_removed" +SERVICE_ADDED = "service_added" +SERVICE_REMOVED = "service_removed" - BUDDY_JOIN = "buddy_join" - BUDDY_LEAVE = "buddy_leave" +BUDDY_JOIN = "buddy_join" +BUDDY_LEAVE = "buddy_leave" +class Group: def __init__(self): self._service_listeners = [] self._presence_listeners = [] - self._store = Store(self) - - def get_store(self): - return self._store - def join(self): + def join(self, buddy): pass def add_service_listener(self, listener): @@ -31,19 +26,19 @@ class Group: def _notify_service_added(self, service): for listener in self._service_listeners: - listener(Group.SERVICE_ADDED, service) + listener(SERVICE_ADDED, buddy) - def _notify_service_removed(self, service_id): + def _notify_service_removed(self, service): for listener in self._service_listeners: - listener(Group.SERVICE_REMOVED, service_id) + listener(SERVICE_REMOVED,buddy) def _notify_buddy_join(self, buddy): for listener in self._presence_listeners: - listener(Group.BUDDY_JOIN, buddy) + listener(BUDDY_JOIN, buddy) def _notify_buddy_leave(self, buddy): for listener in self._presence_listeners: - listener(Group.BUDDY_LEAVE, buddy) + listener(BUDDY_LEAVE, buddy) class LocalGroup(Group): def __init__(self): @@ -64,19 +59,16 @@ class LocalGroup(Group): self._services[sid] = service self._notify_service_added(service) - def remove_service(self, service_id): - self._notify_service_removed(service_id) - del self._services[service_id] + def remove_service(self, sid): + self._notify_service_removed(service) + del self._services[sid] def join(self): self._owner = Owner(self) self._owner.register() def get_service(self, name, stype): - if self._services.has_key((name, stype)): - return self._services[(name, stype)] - else: - return None + return self._services[(name, stype)] def get_buddy(self, name): return self._buddies[name] @@ -103,8 +95,8 @@ class LocalGroup(Group): def _on_service_resolved(self, interface, protocol, name, stype, domain, host, aprotocol, address, port, txt, flags): - service = Service(name, stype, address, port) - if stype == PRESENCE_SERVICE_TYPE: - self._add_buddy(Buddy(service, name)) - elif stype.startswith("_olpc"): - self.add_service(service) + service = Service(name, stype, address, port) + if stype == PRESENCE_SERVICE_TYPE: + self._add_buddy(Buddy(service, name)) + elif stype.startswith("_olpc"): + self.add_service(service) |