Files
evolution/camel
Not Zed d424adcf63 Check the uid string is all digits before trying to write a 'standard'
2000-11-16  Not Zed  <NotZed@HelixCode.com>

        * providers/local/camel-local-summary.c
        (local_summary_encode_x_evolution): Check the uid string is all
        digits before trying to write a 'standard' x-ev header.

        * providers/local/camel-maildir-summary.c
        (camel_maildir_summary_info_to_name): Convert an info into a
        maildir name:info filename.
        (camel_maildir_summary_name_to_info): Convert a name:info filename
        into an info, and tell us if it didn't match it.
        (message_info_new): When creating a new filename, gets its info
        from the flags field.  Likewise if creating from an existing file,
        extract the flags.
        (maildir_summary_sync): Remove a small memleak.  Also, if our
        flags and that requires a filename change, perform that here.
        (message_info_new): Get the received date from the filename.
        Also, dont overwirte the uid if we have one.
        (maildir_summary_check): Sort the summary in received order before
        completion.
        (maildir_summary_next_uid_string): Test the name for collusions
        before we give it out.  Retry, and if that fails, well, I guess we
        collide :(

        * providers/local/camel-mbox-folder.c (mbox_lock): Implement mbox
        locking.
        (mbox_unlock): And unlocking.
        (mbox_append_message): Lock the folder for write before doing
        anything.
        (mbox_get_message): Lock the folder for read before doing
        anything.

        * providers/local/camel-local-folder.c (camel_local_folder_lock):
        Implement something here.  We handle the recursive ability but
        pass the locking to the folder itself.
        (camel_local_folder_unlock): Likewise for unlocking.
        (local_lock): Default - do nothing, return success.
        (local_unlock): Same.
        (local_sync): Changed slightly for locking api changes, and also,
        only lock around the sync process itself.

        * camel-lock.c: New file - utility functions for locking using
        different strategies and/or for locking folders safely.

        * Makefile.am (libcamel_la_SOURCES): Adde camel-lock.[ch]

svn path=/trunk/; revision=6592
2000-11-16 13:27:21 +00:00
..
2000-06-07 23:57:18 +00:00
2000-08-10 17:30:50 +00:00
2000-08-10 17:30:50 +00:00
2000-11-16 06:13:22 +00:00
2000-08-11 02:57:11 +00:00
2000-08-10 17:30:50 +00:00
2000-08-11 02:57:11 +00:00
2000-08-10 17:30:50 +00:00
2000-08-10 17:30:50 +00:00
2000-10-24 05:23:27 +00:00
2000-10-24 05:23:27 +00:00
2000-10-24 22:20:44 +00:00
2000-08-10 17:30:50 +00:00
2000-08-10 17:30:50 +00:00
2000-08-10 17:30:50 +00:00
2000-08-10 17:30:50 +00:00
2000-08-10 17:30:50 +00:00
2000-08-11 02:57:11 +00:00
2000-11-14 21:29:21 +00:00
2000-08-10 17:30:50 +00:00
2000-08-10 17:30:50 +00:00
2000-05-29 11:09:32 +00:00

                                   CAMEL
     

			A generic Messaging Library


                                   ----
				

Introduction:
-------------

Camel will be a generic messaging library. It will evntually support 
the standard messaging system for receiving and sending messages.
It aims at being the backend for the future gnome-mailer system.

The name "camel" stands for ... nothing. Open area of development there.
You know, that "bazaar" thing. Maybe could we organize a big contest on
gnome-list to find the best explanation :)

Camel draws heavily from JavaMail and the IMAP4rev1 RFC. People
wanting to hack on a provider should read the JavaMail API
specification, but CMC and MAPI are of interest too.

Please, before starting anything, wait for me to finish the abstract
classes. Some parts are not definitive yet.

 
Organization:
-------------

The library is roughly a set of abstract classes, some kind of generic
"interfaces" (idl interfaces, not java interfaces ).

Particular implementations are called providers.

Here are the basic objects:

* CamelService : an abstract class representing an access to a server.
Handles the connection and authentication to any server.

* CamelStore (CamelService): A hierarchy of folders on a server.

* CamelFolder : An object containing messages. A folder is always
associated with a store.

* CamelMessage : An object contained in folders. Is defined by a set
of attributes and a content. (Attributes include: the date it was
received, the sender address, .....)

* CamelTransport (CamelService): A way to send messages.

....
...