﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	launchpad_bug
993	refactor download interfaces to treat immutable files and mutable versions more uniformly	davidsarah	kevan	"Currently, downloading a mutable file is quite complicated unless the download_best_version() method of IMutableFileNode is used. This has several disadvantages:
 * client code has to fork depending on whether it is downloading a mutable or immutable file.
 * download_best_version() returns a Deferred for the whole contents, it does not allow directing the download to a consumer.
 * there is the potential for race conditions when the client wants to get several pieces of information about the same version.

The attachment gives some proposed interface changes worked out with Brian on IRC. Among other improvements these would allow calling {{{get_best_readable_version()}}} on any filenode, and then using {{{read}}} to download to a consumer. For the time being mutable files would still be downloaded in a single lump, but clients using these new interfaces would not have to change when we fix that.

('diff' got confused and started interleaving changes to unrelated methods, so compare the attachment with [source:src/allmydata/interfaces.py].)
"	enhancement	closed	major	1.9.0	code-mutable	1.6.0	fixed	cleanup download mutable		
