diff options
author | Mike C. Fletcher <mcfletch@raistlin.(none)> | 2007-04-14 05:17:59 (GMT) |
---|---|---|
committer | Mike C. Fletcher <mcfletch@raistlin.(none)> | 2007-04-14 05:17:59 (GMT) |
commit | 2ca12e9da25451d35d0bba48f3fb03c32b00de22 (patch) | |
tree | 0590d02dede51de20cb01df9609c8460d3ae8347 /sugar | |
parent | 879ef9b0e04ee9ac2f615dc91e05c5a64d5da0b2 (diff) |
Overall roles and operation of the activity classes.
Note on return value for factory service.
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/activity/__init__.py | 47 | ||||
-rw-r--r-- | sugar/activity/activityfactoryservice.py | 2 |
2 files changed, 49 insertions, 0 deletions
diff --git a/sugar/activity/__init__.py b/sugar/activity/__init__.py index e69de29..524cdfc 100644 --- a/sugar/activity/__init__.py +++ b/sugar/activity/__init__.py @@ -0,0 +1,47 @@ +"""Activity implementation code for Sugar-based activities + +Each activity within the OLPC environment must provide two +dbus services. The first, patterned after the + + sugar.activity.activityfactory.ActivityFactory + +class is responsible for providing a "create" method which +takes a small dictionary with values corresponding to a + + sugar.activity.activityhandle.ActivityHandle + +describing an individual instance of the activity. The +ActivityFactory service is registered with dbus using the +global + + sugar.activity.bundleregistry.BundleRegistry + +service, which creates dbus .service files in a well known +directory. Those files tell dbus what executable to run +in order to load the ActivityFactory which will provide +the creation service. + +Each activity so registered is described by a + + sugar.activity.bundle.Bundle + +instance, which parses a specially formatted activity.info +file (stored in the activity directory's ./activity +subdirectory). The + + sugar.activity.bundlebuilder + +module provides facilities for the standard setup.py module +which produces and registers bundles from activity source +directories. + +Once instantiated by the ActivityFactory's create method, +each activity must provide an introspection API patterned +after the + + sugar.activity.activityservice.ActivityService + +class. This class allows for querying the ID of the root +window, requesting sharing across the network, and basic +"what type of application are you" queries. +""" diff --git a/sugar/activity/activityfactoryservice.py b/sugar/activity/activityfactoryservice.py index cf51f9c..5dcedb3 100644 --- a/sugar/activity/activityfactoryservice.py +++ b/sugar/activity/activityfactoryservice.py @@ -99,6 +99,8 @@ class ActivityFactoryService(dbus.service.Object): handle -- sugar.activity.activityhandle.ActivityHandle compatible dictionary providing the instance-specific values for the new instance + + returns xid for the created instance' root window """ activity_handle = activityhandle.create_from_dict(handle) activity = self._constructor(activity_handle) |