Progress notification

Boudewijn Rempt boud at valdyas.org
Fri Oct 20 16:34:14 CEST 2006


Currently, we use an event based progress architecture, with vestiges of the 
old publish/subscribe architecture. This architecture has a couple of big 
problems (for the sake of discussion, an action is something like a filter 
process() call or a visitor call):

* not thread-safe
* cannot handle more than one progressing action at the same time
* uses processEvents (which is dangerous)
* costs us quite a bit of cpu

We need to replace it, therefore. The list of problems is very nearly the list 
of requirements for the replacement:

* threadsafe (should be able to handle updates from different threads within 
the same action and still show a continuous progress towards 100%)
* be able to handle more than one concurrent action
* be safe
* be cancelable
* non-modal
* function for the preview of filters, too
* be fast
* be really easy to use

There are three possible mechanisms for notifying the view of progress that I 
can see:

* pub/sub
* sending events
* emitting signals

pub/sub is very heavy weight; events have as a disadvantage that we need a 
unique event id for our custom events (which may clash) and for signals/slots 
we need QObjects.

I'm not sure how to progress: we want to look at ThreadWeaver and Thomas' 
threadable actions framework before doing anything. Other ideas?

-- 
Boudewijn Rempt 
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20061020/4bd15014/attachment.pgp 


More information about the kimageshop mailing list