Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/p2p
diff options
context:
space:
mode:
authorMarco 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)
commit112f067c01aefee431da063edcf059087832051e (patch)
tree988cf3b99cc883432de996882888a946de6d7b7b /sugar/p2p
parentd5ff67caa5dcfd287c117e8017b96d077ebfa0d3 (diff)
Merge
Diffstat (limited to 'sugar/p2p')
-rw-r--r--sugar/p2p/Buddy.py10
-rw-r--r--sugar/p2p/Group.py6
-rw-r--r--sugar/p2p/Service.py4
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)