[Development] QFile: writing via a temporary file
thiago.macieira at intel.com
Sun Jan 8 02:55:02 CET 2012
On Saturday, 7 de January de 2012 16.56.19, Stephen Kelly wrote:
> On Friday, January 06, 2012 19:09:26 Thiago Macieira wrote:
> > If the method accepted a QFile pointer before, then a class derived from
> > QFile will automatically downcast to the type.
> This could be a downcast-vs-upcast definition mismatch in your
Downcast = towards base class
Upcast = towards most derived
> I think David is saying that a method which takes a QFile* would have to
> qobject_cast<QSaveFile*>(file) to call its rollback method if it were a
> separate class.
Indeed. But it shouldn't need to do that. A method that takes an *open* file
should not try to close it. You have a method that creates a QSaveFile, opens
it, passes to another method. This second method should only write, not
attempt to open or close. It doesn't need to care what else there is. If there
was a failure in writing, it reports. Once it is done, the outer layer, which
still has a QSaveFile pointer or object, will do the committing and closing.
> Of course it's also common to have methods that do writing to take a
> QIODevice*. Does it make any sense to add a virtual rollback() to that
> (which obviously would do nothing in many overrides)?
No, I don't think so.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
Intel Sweden AB - Registration Number: 556189-6027
Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://lists.qt-project.org/pipermail/development/attachments/20120107/73938584/attachment.bin
More information about the Development