diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-02-21 23:41:26 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-02-21 23:41:26 (GMT) |
commit | 0d7bdeb20a6a807852a92aa5e854d1f5bfa9d82f (patch) | |
tree | 95c338942de476ef6b15b8bdf8804f824bd76600 /sugar/activity/activityhandle.py | |
parent | 0556d5f51f05e7effde34cfa7d0e977a5b204ef1 (diff) |
Improve handle marshalling. Add an uri to the handle.
Diffstat (limited to 'sugar/activity/activityhandle.py')
-rw-r--r-- | sugar/activity/activityhandle.py | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/sugar/activity/activityhandle.py b/sugar/activity/activityhandle.py index f9d1f30..24c9d67 100644 --- a/sugar/activity/activityhandle.py +++ b/sugar/activity/activityhandle.py @@ -21,14 +21,29 @@ class ActivityHandle(object): def __init__(self, activity_id): self.activity_id = activity_id self.pservice_id = None + self.uri = None - def __str__(self): - return self.activity_id + def get_presence_service(self): + if self.pservice_id: + pservice = PresenceService.get_instance() + return pservice.get_activity(self.pservice_id) + else: + return None - def get_presence_service(): - pservice = PresenceService.get_instance() - return pservice.get_activity(self._pservice_id) + def get_dict(self): + result = { 'activity_id' : self.activity_id } + if self.pservice_id: + result['pservice_id'] = self.pservice_id + if self.uri: + result['uri'] = self.uri -def create_from_string(handle): - activity_handle = ActivityHandle(handle) - activity_handle.pservice_id = handle + return result + +def create_from_dict(handle_dict): + result = ActivityHandle(handle_dict['activity_id']) + if handle_dict.has_key('pservice_id'): + result.pservice_id = handle_dict['pservice_id'] + if handle_dict.has_key('uri'): + result.uri = handle_dict['uri'] + + return result |