CVSROOT:        /cvs/gnome
Module name:    pan
Changes by:     charles 05/03/09 15:16:00

Modified files:
        .              : ANNOUNCE.html ChangeLog 
        pan            : article-actions.c articlelist.c group-ui.c 
                         grouplist.c gui.c header-pane-renderer.c 
                         log-ui.c message-window.c nntp.c nntp.h pan.c 
                         prefs.c prefs.h save-ui.c save-ui.h 
                         score-add-ui.c server-menu-ui.c server-ui.c 
                         task-bodies.c task-cancel.c task-group-count.c 
                         task-grouplist.c task-headers.c task-post.c 
                         task-save.c task-save.h task-xml.c 
        pan/base       : Makefile.am acache.c article-thread.c 
                         article-thread.h article.c article.h decode.c 
                         decode.h file-grouplist.c file-headers.c 
                         group.c group.h message-check.c 
                         message-identifier.c message-identifier.h 
                         newsrc-port.c pan-glib-extensions.c 
                         pan-glib-extensions.h server.c server.h 
                         serverlist.c serverlist.h util-file.c 
                         util-mime.c 
        pan/filters    : Makefile.am filter-linecount.c filter-phrase.c 
                         filter-xml.c score.c 
        pan/identities : Makefile.am identity-xml.c 
        pan/rules      : rule-action.c rule-xml.c 
        tests          : test-article.c test-mid.c test-thread.c 
Added files:
        pan/base       : message-source.c message-source.h 

Log message:
2005-03-09  Charles Kerr <[EMAIL PROTECTED]>

(Folding binary attachments into a single Article struct.  This lowers the 
memory overhead for a 133K-article group from 63 meg to 19 meg!!)
(#132477, Samuli Kärkkäinen)

* pan/base/article: added AttachmentPart, which defines the minimal unique info 
for each part of a [1..n] binary attachment.  Owned by composition by an 
Article.  Article has a list of these so that we can fold all the headers from 
a [1..n] binary attachment into a single Article object.
* pan/base/article: split `threads' into two fields: `followups' (Article*s) 
and `attachments' (AttachmentPart*s)
* pan/base/message-source.h: sets of tuples of [server,group,number] that tell 
where to locate an article on a news server.  Used by MessageIdentifier, 
AttachmentPart, and Article.xref.
* pan/base/file-headers: add the AttachmentPart serialization inside the 
Article serialization and increment the file format number.
* pan/base/group: new wart for the multipart-folding: when an article is 
expired from the server, only expire the corresponding AttachmentPart.  Then 
expire our Article iff it has no more AttachmentParts.
* pan/base/article-thread: remove the multipart threading code; embedding all 
multiparts into a single Article makes this redundant.
* pan/prefs: remove the preference option to hide multiparts.  Since they're 
folded into a single Article, the issue is moot.

(Using GLib 2.4 functions)

* pan/base/pan-glib-extensions: added 'pan_fopen' macro which resolves to 
g_fopen if GLIB>=2.4; fopen otherwise.
* pan/base/pan-glib-extensions: added 'pan_unlink' macro which resolves to 
g_unlink if GLIB>=2.4; unlink otherwise.
* pan/base/pan-glib-extensions: replace pan_g_ptr_array_foreach with 
g_ptr_array_foreach if GLIB>=2.4.

(Handle "Too Many Connections" response from server)

* pan/nntp: if server returns `too many connections' error, return 
TASK_FAIL_NETWORK so that the task can try to resume itself later.

(Quarks for server and group names)

* pan/base/server: replace Server and Group PString keys with Quarks.
* pan/base/group: same.
* pan/base/message-identifier: same.
* pan/base/serverlist: same.
* pan/base/acache: same.
* pan/base/message-check: same.
* pan/base/newsrc-port: same.
* pan/nntp: same.

URL : 
http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&dir=pan&who=charles&date=explicit&mindate=2005-03-09%2015:15&maxdate=2005-03-09%2015:17

_______________________________________________
cvs-commits-list mailing list
cvs-commits-list@gnome.org
http://mail.gnome.org/mailman/listinfo/cvs-commits-list

Reply via email to