[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Questions on the new KIO::FileJob API
From:       Vlad <vladc6 () yahoo ! com>
Date:       2008-05-07 2:41:00
Message-ID: 8933.47497.qm () web54401 ! mail ! yahoo ! com
[Download RAW message or body]

Hi,

--- nf2 <nf2@scheinwelt.at> wrote:
> 1) - Creating Files: Apparently FileJob in kio_file doesn't allow 
> creating files.

I think this bug is fixed by adding O_CREAT whenever the user requests
QIODevice::WriteOnly.  If the file already exists, O_CREAT does
nothing, so it shouldn't hurt. I hope to commit this fix soon:

http://lists.kde.org/?l=kde-core-devel&m=121012416913922&w=2

> 2) - Reading Files: From reading the code in kio_file i'm not sure 
> whether data() is supposed to emit all the requested data in a
> single 
> callback

Yes, one data() should emit all the requested data, unless the slave
reaches EOF, in which case it returns all the data up to the EOF.

> as the client might try to call
> seek() 
> before read() is finished.

Once you call FileJob::read(), you're supposed to _wait_ until the
data() slot from that read() request has been served before making
another request to the FileJob (ie. calling another FileJob::seek(),
FileJob::write(), etc).

KioFuseApp::seekReadMainThread() in kiofuseapp.cpp does this:

http://websvn.kde.org/trunk/playground/libs/kiofuse/

Also, KIO is not threadsafe, so a FileJob can only be used by the
thread that it was created in.

> **) I wonder if there could be a "timeout" parameter for read() and 
> write(). GIO, for instance, seems to allow cancellation of 
> read()/write() operations.

That would be nice, but AFAIK apps that use KIO can't specify a
timeout value. However, the slave can have its own internal timer and
issue an error() if it detects that an operation is taking too long.

> 
> 3) - Open ReadWrite doesn't seem to be implemented in kio_file

I think this is fixed by the series of patches referenced above.

Thanks,
Vlad


      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic