Overall roles and operation of the activity classes.

Note on return value for factory service.
This commit is contained in:
Mike C. Fletcher 2007-04-14 01:17:59 -04:00
parent 879ef9b0e0
commit 2ca12e9da2
2 changed files with 49 additions and 0 deletions

View File

@ -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.
"""

View File

@ -99,6 +99,8 @@ class ActivityFactoryService(dbus.service.Object):
handle -- sugar.activity.activityhandle.ActivityHandle handle -- sugar.activity.activityhandle.ActivityHandle
compatible dictionary providing the instance-specific compatible dictionary providing the instance-specific
values for the new instance values for the new instance
returns xid for the created instance' root window
""" """
activity_handle = activityhandle.create_from_dict(handle) activity_handle = activityhandle.create_from_dict(handle)
activity = self._constructor(activity_handle) activity = self._constructor(activity_handle)