[nautilus-list] Scheduling multiple file transfer operation on nautilus



Hello!
I want to participate in GSoC and become a GNOME developer in future.
I was interested in subject project. It will be really useful feature.
I have checked out latest nautilus sources, built it and looked into
file operations internals.
Below is my attempt to fully describe a problem.

At first, nautilus file operations are done through GIOScheduler api
and done in parallel. To solve this, I will create a queue with file
operation jobs. When one job is finished, next job is popped from
queue.
After this is done, time for interface improvements. Future file
operations interface I see as in Transmission bittorrent client:
list(queue) with jobs, progress bars, cancel and pause buttons. This
list will have ability to move jobs in the queue (reorder).
But there is more improvements. Not all operations need to be done in
sequence. Some operations can be done in parallel. For example this is
simple low-cost operations, such as single file delete (user don't
want to wait when long file copy operation ends, while he is just
deleting one little file). Another example of operations that should
be done in parallel is operations with different physical file
locations (you want to copy data1.tar.bz2 to /media/usb-drive and
data2.tar.bz2 to ftp://example.org/exchange, this should be done in
parallel). Some little AI will decide what should be done in parallel
and what not. For previous example with data?.tar.bz2, AI will see
that file source is one physical location, but destination locations
are different. So it will check what reading speed potential source
have and what writing speed for two destinations. If reading_speed >=
writing_speed1 + writing_speed2 (with approximation) then this two
operations can be done in parallel. This logic of cause needs to do
some more thinking.
And as I see there will be option to notify user about end of long
term operations via libnotify.

What can you say about this? Any other ideas to be included in my application?
Best regards, Dmitry.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]