diff options
author | Marco 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) |
commit | 3710eea217fa71e2ad4fef34e46d99c6e8f6cb19 (patch) | |
tree | 824835807407befcd105af72ad02911b878dfd20 /sugar/p2p | |
parent | 046a954de1a43fee3b6bd15a5e26089483d85ad2 (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.py | 18 |
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 = {} |