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-06-06 16:43:26 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2006-06-06 16:43:26 (GMT)
commit3710eea217fa71e2ad4fef34e46d99c6e8f6cb19 (patch)
tree824835807407befcd105af72ad02911b878dfd20 /sugar/p2p
parent046a954de1a43fee3b6bd15a5e26089483d85ad2 (diff)
Start factoring out the presence stuff from chat UI... very very very broken right now
Diffstat (limited to 'sugar/p2p')
-rw-r--r--sugar/p2p/Group.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/sugar/p2p/Group.py b/sugar/p2p/Group.py
index c3d7d6d..64f507f 100644
--- a/sugar/p2p/Group.py
+++ b/sugar/p2p/Group.py
@@ -11,16 +11,28 @@ import presence
_OLPC_SERVICE_TYPE_PREFIX = "_olpc"
class Group:
+ _groups = {}
+
SERVICE_ADDED = "service_added"
SERVICE_REMOVED = "service_removed"
BUDDY_JOIN = "buddy_join"
BUDDY_LEAVE = "buddy_leave"
-
- def __init__(self):
+
+ def get_from_id(group_id):
+ if group_id == 'local' and not Group._groups.has_key(group_id):
+ return LocalGroup()
+ else:
+ group = Group._groups[group_id]
+ get_from_id = staticmethod(get_from_id)
+
+ def __init__(self, group_id):
+ self._group_id = group_id
self._service_listeners = []
self._presence_listeners = []
self._store = Store(self)
+
+ Group._groups[group_id] = self
def get_store(self):
return self._store
@@ -52,7 +64,7 @@ class Group:
class LocalGroup(Group):
def __init__(self):
- Group.__init__(self)
+ Group.__init__(self, 'local')
self._services = {}
self._buddies = {}