[Adium-devl] Ticket #4501
Colin Barrett
timber at lava.net
Fri Dec 7 14:02:53 UTC 2007
On Nov 29, 2007, at 8:32 AM, Augie Fackler wrote:
> http://trac.adiumx.com/ticket/4501
>
> I'm back from the dead for a moment, and wanted to start a discussion
> on this so that by the time I get time to work on it we actually know
> what I should do. My inclination right now is to create a bundle
> format that would let us resume file transfers in the same way as
> Safari, saving whatever account-specific information is needed for a
> resume.
>
> As of now, do any of our account types support resuming a file
> transfer? My guess is no, and therefore we should just implement
> the .adiumFileTransfer bundle for partial downloads which will then be
> more obviously incomplete files (AIM'ing movie files around campus, I
> ended up with some broken ones and was sorely confused for a little
> while).
>
> Does that seem reasonable? Have I missed something? Am I hopelessly
> overengineering?
A little, I think. Resuming a file transfer is a bit different from
resuming a download from the server. In the latter case, the
connection is pull. In the former, the connection is push. I think
that's an important difference and should inform our design.
The main advantage, imo, of a bundle, is that it is a distinct file
type and thus double clickable to start resuming the download. Since
file transfers are push, that does not really work out right.
Engineering for a system where you can ask the remote party to start
sending you a file again is a little silly because a) our UI doesn't
support that and b) I doubt any protocol supports it either.
How about instead a bundle, we just use an extended attribute? Set it
when the file is still downloading and clear it when the file is done.
I'm assuming the goal here is to have a way to clean up unfinished
files across sessions/crashes, since just moving the failed transfer
to the Trash seems way obvious and you wouldn't have mailed the list
about it :)
-Colin
More information about the devel
mailing list