diff options
author | Dan Williams <dcbw@redhat.com> | 2007-09-08 01:53:32 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2007-09-08 01:53:32 (GMT) |
commit | 9e2a9c4c025b492169fe244c4a443d1b63b50968 (patch) | |
tree | 6995c72387024d26f4aad879b4d31f33c364fe6a /sugar/datastore/datastore.py | |
parent | 434483f54a3a5477077a96167f17ee6e19e2a0e7 (diff) |
Support moving of files to datastore when using write_file()
Using the transfer_ownership argument, activities using the default activity
datastore integration methods (namely write_file) will now tell the datastore
that it can move the files by default. This reduces the copies required, which
is slow on flash. For activities not using the standard APIs (Record, etc),
the datastore bindings allow the activity to specify when ownership should
transfer.
Diffstat (limited to 'sugar/datastore/datastore.py')
-rw-r--r-- | sugar/datastore/datastore.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py index 6409a8a..0be6a2f 100644 --- a/sugar/datastore/datastore.py +++ b/sugar/datastore/datastore.py @@ -186,7 +186,7 @@ def create(): metadata['mtime'] = metadata['ctime'] return DSObject(object_id=None, metadata=metadata, file_path=None) -def write(ds_object, update_mtime=True, reply_handler=None, error_handler=None, timeout=-1): +def write(ds_object, update_mtime=True, transfer_ownership=False, reply_handler=None, error_handler=None, timeout=-1): logging.debug('datastore.write') properties = ds_object.metadata.get_dictionary().copy() @@ -198,12 +198,14 @@ def write(ds_object, update_mtime=True, reply_handler=None, error_handler=None, dbus_helpers.update(ds_object.object_id, properties, ds_object.file_path, + transfer_ownership, reply_handler=reply_handler, error_handler=error_handler, timeout=timeout) else: ds_object.object_id = dbus_helpers.create(properties, - ds_object.file_path) + ds_object.file_path, + transfer_ownership) # TODO: register the object for updates logging.debug('Written object %s to the datastore.' % ds_object.object_id) |