[Telepathy] File transfer spec: need for advice
Emanuele Aina
faina.mail at tiscali.it
Thu Aug 23 15:06:48 PDT 2007
Marco Barisione ipotizzò:
> I'm going to add a new CLOSED state to the existing ones
> (LOCAL_PENDING, REMOTE_PENDING and OPEN), but then FileTransferClosed
> signal would become a duplicate of FileTransferStateChanged so I'm going
> to remove it.
> The problem is that FieTransferClosed has a reason argument specifying
> why the file transfer was closed (local/remote error, local/remote
> stopped and success). What do you suggest to do? I want to remove
> FileTransferClosed but I need the reason argument. My ideas are:
> - Add a reason argument to FileTransferStateChanged and pass a
> NOT_CLOSED value when the new state is not CLOSED.
> - Add a reason argument to FileTransferStateChanged and pass something
> like ACCEPTED when the state changes from LOCAL/REMOTE_PENDING to OPEN
> (other transitions are not possible at the moment). The enumeration
> could be renamed from File_Transfer_Close_Reason to something like
> File_Transfer_State_Change_Reason.
> - Do not add a reason argument but add a GetCloseReason() method, this
> is what I would do in a normal API but here we have a DBUS call and I
> don't like adding a roundtrip only to get the reason.
What about getting rid of the Reason enum entirely and represent it with
the status?
Instead of adding a new CLOSED state we can add the COMPLETED,
LOCALSTOPPED, REMOTESTOPPED, LOCALERROR, REMOTEERROR states.
It would make the client a little bit more complex, as it is not
immediately clear that those states all means that the file transfer is
ended, but I think that is true only if you don't care about the reason
and that should not happen a lot, as you are effectively ignoring if the
file transfer was succesfull or not.
Another alternative could me a mixed approach: add the COMPLETED and
INTERRUPTED states and then use GetInterruptionReason() only when an
error occur.
This should give a roundtrip only in the (hopefully not so frequent)
error case and a simpler API.
--
Buongiorno.
Complimenti per l'ottima scelta.
More information about the Telepathy
mailing list