New revision. Some fixes.

1999-09-05  bertrand  <Bertrand.Guiheneuf@aful.org>

	* devel-docs/misc/ref_and_id_proposition.txt:
	New revision. Some fixes.

	* camel/camel-folder.h (struct _CamelFolder): added
	uid_capability field.

* started to work on UIDs

svn path=/trunk/; revision=1180
This commit is contained in:
bertrand
1999-09-05 17:48:59 +00:00
committed by Bertrand Guiheneuf
parent e716a2ed8b
commit 1ee21a1820
4 changed files with 31 additions and 11 deletions

View File

@ -1,9 +1,19 @@
1999-09-05 bertrand <Bertrand.Guiheneuf@aful.org> 1999-09-05 bertrand <Bertrand.Guiheneuf@aful.org>
* devel-docs/misc/ref_and_id_proposition.txt:
New revision. Some fixes.
* camel/camel-folder.h (struct _CamelFolder): added
uid_capability field.
* camel/camel-folder.c (camel_folder_close): publicized
the close method.
* tests/ui-tests/store_listing.c (show_folder_messages): * tests/ui-tests/store_listing.c (show_folder_messages):
use folder summary instead of opening all messages. use folder summary instead of opening all messages.
(show_folder_messages): re-enabled old CPU/Mem consumming (show_folder_messages): re-enabled old CPU/Mem consumming
method. Use ful for pop3 for instance. method. Useful for pop3 for instance.
* camel/providers/MH/camel-mh-folder.c (_create_summary): * camel/providers/MH/camel-mh-folder.c (_create_summary):
basic and highly non-efficient summary implementation. basic and highly non-efficient summary implementation.

View File

@ -213,7 +213,11 @@ _close (CamelFolder *folder, gboolean expunge)
folder->open_state = FOLDER_CLOSE; folder->open_state = FOLDER_CLOSE;
} }
void
camel_folder_close (CamelFolder *folder, gboolean expunge)
{
CF_CLASS(folder)->close (folder, expunge);
}

View File

@ -71,9 +71,13 @@ struct _CamelFolder
CamelStore *parent_store; CamelStore *parent_store;
CamelFolder *parent_folder; CamelFolder *parent_folder;
GList *permanent_flags; GList *permanent_flags;
gboolean has_summary_capability; gboolean has_summary_capability;
CamelFolderSummary *summary; CamelFolderSummary *summary;
gboolean has_uid_capability;
GList *message_list; GList *message_list;
}; };
@ -121,6 +125,7 @@ GtkType camel_folder_get_type (void);
/* public methods */ /* public methods */
CamelFolder *camel_folder_get_folder (CamelFolder *folder, gchar *folder_name); CamelFolder *camel_folder_get_folder (CamelFolder *folder, gchar *folder_name);
void camel_folder_open (CamelFolder *folder, CamelFolderOpenMode mode); void camel_folder_open (CamelFolder *folder, CamelFolderOpenMode mode);
void camel_folder_close (CamelFolder *folder, gboolean expunge);
gboolean camel_folder_create (CamelFolder *folder); gboolean camel_folder_create (CamelFolder *folder);
gboolean camel_folder_delete (CamelFolder *folder, gboolean recurse); gboolean camel_folder_delete (CamelFolder *folder, gboolean recurse);
gboolean camel_folder_delete_messages (CamelFolder *folder); gboolean camel_folder_delete_messages (CamelFolder *folder);

View File

@ -1,6 +1,7 @@
Author: Bertrand Guiheneuf <Bertrand.Guiheneuf@aful.org> Author: Bertrand Guiheneuf <Bertrand.Guiheneuf@aful.org>
Date: August 9th 1999 Date: August 9th 1999
Version: 0.1 Last revision date : September 3rd 1999
Version: 0.2
The last version of this document is always available in gnome CVS in The last version of this document is always available in gnome CVS in
the gnome-mailer module: devel-docs/misc/ref_and_id_proposition.txt the gnome-mailer module: devel-docs/misc/ref_and_id_proposition.txt
@ -19,7 +20,7 @@ where number is an integer representing the message rank within its
parent folder. parent folder.
This is a traditional method (JavaMail, MAPI) and it is very useful This is a traditional method (JavaMail, MAPI) and it is very useful
because this is often the only way to get a identify message in a because this is often the only way to get a message in from a
classical store (pop3 for example). classical store (pop3 for example).
Moreover, various documents ([1], [2]) proposed to generalize the URL Moreover, various documents ([1], [2]) proposed to generalize the URL
@ -80,9 +81,9 @@ Basically, we have two choices:
Method (1) already exists in IMAP. Method (1) already exists in IMAP.
It is quite simple to define on local stores (MH, mbox, ....) but it It is quite simple to define on local stores (MH, mbox, ....) but it
may not resist to message modification by other MUA. may not resist to message modification by other MUA.
Methods based on Message-id matching or message content-checksum seem Methods based on Message-id matching or message content checksum seem
to be the best one. Using an "X-" header is another possibility on to be the best one. Using an "X-" header is another possibility for
non-read only headers. A combination of these three methods may be the non read-only folders. A combination of these three methods may be the
most reliable solution. most reliable solution.
The UID is impossible to implement in a POP3 store provider. The UID is impossible to implement in a POP3 store provider.
@ -96,7 +97,7 @@ The M-ID is also impossible to implement in a POP3 store provider.
We may not rely on external MUA and MTA to guarentee the uniqueness of We may not rely on external MUA and MTA to guarentee the uniqueness of
the identifier . We may lose messages by never being able to read them the identifier . We may loose messages by never being able to read them
if two had the same uid. It would be possible to find workarounds, but if two had the same uid. It would be possible to find workarounds, but
it could make Camel use a bit tricky. it could make Camel use a bit tricky.
@ -121,7 +122,7 @@ gchar * camel_folder_get_message_uid (CamelFolder *folder, CamelMimeMessage *mes
CamelMimeMessage *camel_folder_get_message_by_uid (CamelFolder *folder, gchar *uid) CamelMimeMessage *camel_folder_get_message_by_uid (CamelFolder *folder, gchar *uid)
return the message which uid is %uid return the message which uid is %uid
In addition, the CamelFolder Class will have a new public method In addition, the CamelMessage Class will have a new public method
gchar * camel_mime_message_get_uid (CamelMimeMessage *message) gchar * camel_mime_message_get_uid (CamelMimeMessage *message)
return the uid associated to the message in its physical parent return the uid associated to the message in its physical parent
@ -134,7 +135,7 @@ B) Handling message references in (v)folders.
We want the future Gnome mailer to be able to build (virtual) folders We want the future Gnome mailer to be able to build (virtual) folders
holding references to messages located physically in other holding references to messages physically located in other
folders. More generally, we would like folders to be able to hold: folders. More generally, we would like folders to be able to hold:
1) messages 1) messages
@ -145,7 +146,7 @@ folders. More generally, we would like folders to be able to hold:
can hold messages and/or subfolders. can hold messages and/or subfolders.
(3) is a different issue, because no existing mail store can currently (3) is a different issue, because no existing mail store can currently
hold within folders references to messages in other folders. hold, within folders, references to messages in other folders.
It will thus be a specific gnome-mailer extension. It will thus be a specific gnome-mailer extension.