A queue, a queue!
- From: Philip Van Hoof <spam pvanhoof be>
- To: tinymail-devel-list <tinymail-devel-list gnome org>
- Cc: Dirk-Jan Binnema <Dirk-Jan Binnema nokia com>
- Subject: A queue, a queue!
- Date: Wed, 16 May 2007 00:54:55 +0200
Hi there,
I finished the TnyQueue and TnyQueueTask redesign and I have adapted the
existing queues in libtinymail-queues to this.
What has changed:
* AsyncWorker is now optional for libtinymail-queues
* IF you implement your own TnyQueue and TnyQueueTask
* libtinymail-asyncworker implements a TnyQueue with AsyncWorker
* libtinymail-queues's types decorate a TnyQueue (any)
* This way you can share one mother queue with multiple
queue disciplines (multiple queued functionalities)
What also has changed:
* I created some beginnings of documentation
http://tinymail.org/trac/tinymail/wiki/TnyQueueAndTnyQueueTask
http://tinymail.org/trac/tinymail/wiki/TnyQueue
http://tinymail.org/trac/tinymail/wiki/TnyQueueTask
http://tinymail.org/trac/tinymail/wiki/AsyncWorker
http://tinymail.org/trac/tinymail/wiki/TnyAsyncWorkerQueue
http://tinymail.org/trac/tinymail/wiki/TnyAsyncWorkerQueueTask
* Please do enhance these
What needs to be done:
* More queue types in libtinymail-queues
* TnyGetMsgQueue for getting messages
* TnyGenericSendQueue for sending messages
* The improvements that Sergio needs for TnyGetMsgQueue
* Maybe this implies an API change to TnyQueue (which is fine. just
tell me, or let's check whether everything we want to do is or
isn't possible right now)
* Split TnyGetMsgQueue into two queue disciplines:
* TnyGetFullMsgQueue
* For bulk getting all messages of a folder
* TnyGetMsgQueueAndAct
* For getting a message and displaying it
It would work like this:
TnyQueue *mother = create_mother_queue ();
TnyGetFullMsgQueue *fmsgq = new TnyGetFullMsgQueue (mother);
TnyGetMsgQueueAndAct *gmsgaq = new TnyGetMsgQueueAndAct (mother);
on_show_message (header, view)
{
gmsgaq.show_soon (header, view)
}
on_get_all_messages (folder)
{
fmsgq.get_all (folder)
}
Both queues will share "mother" as their one-queue-to-rule-them-all
queue. Although the TnyGetMsgQueueAndAct will obviously give a ultra
high priority to the task, it wont disallow the TnyGetFullMsgQueue to
keep fetching full messages in the background.
Is this working already: in theory, yes. In practise, I can imagine that
this still needs a lot of work.
Please look at the design and the existing documentation (and maybe at
the code too), and let me know what you think (on the mailing list).
--
Philip Van Hoof, software developer
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
http://www.pvanhoof.be/blog
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]