You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.6 KiB
Python

# Copyright (C) 2006-2007 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
'''
Provides a class for storing activity metadata such as activity id's,
journal object id's,
'''
class ActivityHandle(object):
'''
Data structure storing simple activity metadata
Args:
activity_id (string): unique id for the activity to be
created
object_id (string): identity of the journal object
associated with the activity.
When you resume an activity from the journal
the object_id will be passed in. It is optional
since new activities does not have an
associated object.
uri (string): URI associated with the activity. Used when
opening an external file or resource in the
activity, rather than a journal object
(downloads stored on the file system for
example or web pages)
invited (bool): True if the activity is being
launched for handling an invite from the network
'''
def __init__(self, activity_id=None, object_id=None, uri=None,
invited=False):
self.activity_id = activity_id
self.object_id = object_id
self.uri = uri
self.invited = invited
def get_dict(self):
'''Returns activity settings as a dictionary in format
{activity_id:XXXX, object_id:XXXX, uri:XXXX, invited:BOOL}'''
result = {'activity_id': self.activity_id, 'invited': self.invited}
if self.object_id:
result['object_id'] = self.object_id
if self.uri:
result['uri'] = self.uri
return result
def create_from_dict(handle_dict):
'''Returns an activity handle from a dictionary of parameters'''
result = ActivityHandle(handle_dict['activity_id'],
object_id=handle_dict.get('object_id'),
uri=handle_dict.get('uri'),
invited=handle_dict.get('invited'))
return result