Re: RFC mailbox interface



Em Qui, 22 Nov 2001 22:23:01 M . Thielker escreveu:

> 
> This is what it would look like for a folder that has a backing store. On 
> one without a backing store, it would simply remove the message from the 
> list and free it's memory if there are no more references (i.e. 
> message->folders == NULL)
> That "folders" variable is to avoid an unnecessary load of a message not 
> completely in memory when the last reference is a folder with backing store 
> and the message is being deleted.

if a message is in 2 diferent folders with backing stores (ie. *real*
mailboxes) it's 2 diferent messages. a folder with a backing store is a
real mailbox for the user. 
> Note that there is no need to load the message at this time if another 
> folder with a backing store still has a copy, "load" tracks that. To avoid 
> loading a message when it's deleted, all the client needs to do is remove 
> it from all virtual folders first, using the has_backing_store API call to 
> find out which are virtual.

this whole virtual and vfolders and cache and backing store thing got well
out of hand. a folder with backing store is a mailbox. it uses space on disk.
it lives somewhere. it's backed up. the user cares about it. a vfolder/view
doesn't ocupy space on disk. if the message is copied to a diferent mailbox
it's a totally diferent message.
if you add a cache layer it overloads mailbox_imap_get_message. it's totally
user transparent like a webbrowser cache. if it does *anything* else it's
broken.

so, we have
. indexes - they point to messages. they can be master (representation of   
on disk stuff) or virtual (point to index://folder/msg)
. on disk message stores. you build master indexes from those. changes to
   master indexes go into those.

this is simple enough and can be used for mostly anything.

pawel ? emmanuel ? peter ? kenneth ? melanie ?

> Also note that the load_message wrapper (the main load_message function of 
> the lib) can use the information found in the _Foldertype structure to 
> assess the proximity of a server and prefer the fastest one to load the 
> message from, e.g. local maildir/mh first, local mbox second, IMAP on the 
> same subnet third. other IMAP fourth.....
> 
except if you're on UFS. or NFS. or samba. or some weird condition that
changes everything.


-- 
Carlos Morgado - chbm(at)chbm(dot)nu - http://chbm.nu/ -- gpgkey: 0x1FC57F0A 
http://wwwkeys.pgp.net/ FP:0A27 35D3 C448 3641 0573 6876 2A37 4BB2 1FC5 7F0A
I am Homer of Borg! Prepare to be... OOooo! donuts! 



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