diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2006-05-22 20:36:02 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2006-05-22 20:36:02 (GMT) |
commit | 112f067c01aefee431da063edcf059087832051e (patch) | |
tree | 988cf3b99cc883432de996882888a946de6d7b7b /sugar/p2p | |
parent | d5ff67caa5dcfd287c117e8017b96d077ebfa0d3 (diff) |
Merge
Diffstat (limited to 'sugar/p2p')
-rw-r--r-- | sugar/p2p/Buddy.py | 10 | ||||
-rw-r--r-- | sugar/p2p/Group.py | 6 | ||||
-rw-r--r-- | sugar/p2p/Service.py | 4 |
3 files changed, 18 insertions, 2 deletions
diff --git a/sugar/p2p/Buddy.py b/sugar/p2p/Buddy.py index 6847dfb..ea08c21 100644 --- a/sugar/p2p/Buddy.py +++ b/sugar/p2p/Buddy.py @@ -111,3 +111,13 @@ class Owner(Buddy): def register(self): self._presence_service.register(self._group) + + def notify_service_registered(self, service): + """New services registered in our group are automatically owned + by us.""" + self._services[service.get_type()] = service + + def add_service(self, service): + """Do nothing here, since all services we need to know about + are registered with us by our group.""" + pass diff --git a/sugar/p2p/Group.py b/sugar/p2p/Group.py index 48e6a29..c3d7d6d 100644 --- a/sugar/p2p/Group.py +++ b/sugar/p2p/Group.py @@ -90,6 +90,10 @@ class LocalGroup(Group): if self._buddies.has_key(name): return self._buddies[name] return None + + def notify_service_registered(self, service): + """A new service is automatically owned by the owner of this group.""" + self._owner.notify_service_registered(service) def _add_buddy(self, buddy): bid = buddy.get_nick_name() @@ -130,7 +134,7 @@ class LocalGroup(Group): if key == 'group_address': service.set_group_address(value) - # print "ServiceResolved: name=%s, stype=%s, port=%s, address=%s" % (name, stype, port, address) + #print "ServiceResolved: name=%s, stype=%s, port=%s, address=%s" % (name, stype, port, address) if stype in get_recognized_buddy_service_types(): # Service recognized as Buddy services either create a new # buddy if one doesn't exist yet, or get added to the existing diff --git a/sugar/p2p/Service.py b/sugar/p2p/Service.py index 2fa102d..8bc73f7 100644 --- a/sugar/p2p/Service.py +++ b/sugar/p2p/Service.py @@ -35,10 +35,12 @@ class Service(object): def is_multicast(self): return self._group_address != None - def register(self, group): + def register(self, group): pannounce = presence.PresenceAnnounce() if self._group_address: pannounce.register_service(self._name, self._port, self._stype, group_address = self._group_address) else: pannounce.register_service(self._name, self._port, self._stype) + # Notify the group that we're registering a new service + group.notify_service_registered(self) |