Files
evolution/camel
Dan Winship 6952dcb7c0 Replace copy_messages_to and move_messages_to with a single function that
* camel-folder.c (camel_folder_transfer_messages_to): Replace
	copy_messages_to and move_messages_to with a single function that
	just takes a "delete_originals" flag. Also, use the vtrash
	implementation if *either* folder is a vtrash.
	(transfer_messages_to): Make this use camel_operation_progress
	(previously move_messages_to did but copy_messages_to didn't), and
	freeze/thaw the folder(s) if doing multiple messages.

	* camel-vtrash-folder.c (vtrash_transfer_messages_to): Update for
	move/copy merge. Move the "move messages into vtrash" code here
	from mail-ops.c. Now all of the vtrash move/copy special casing is
	in camel instead of half of it being here and half in mail/. (This
	should also make it so that "Move to Trash" will work in filter
	rules.)

	* camel-vee-folder.c (vee_transfer_messages_to): Make this just
	return an exception, since it will only be called when trying to
	move/copy messages from one vfolder to another.
	(vee_append_message): Add this too so we get a nicer error message
	than the default "unimplemented" one in camel-folder.c.

	* camel-digest-folder.c: Replace copy_messages_to and
	move_messages_to with transfer_messages_to.

	* camel-disco-folder.c: Likewise

	* camel-disco-diary.c (camel_disco_diary_log,
	camel_disco_diary_replay): replace MOVE/COPY with TRANSFER.

	* providers/imap/camel-imap-folder.c (imap_transfer_offline,
	imap_transfer_online, imap_transfer_resyncing): Update for
	changes. (This ends up being a bit more complicated than it was
	before for now, but later disconnected operation changes should
	resimplify it.)

	* camel-filter-driver.c (camel_filter_driver_filter_message,
	do_copy, do_move): Use transfer_messages_to instead of copy.

svn path=/trunk/; revision=16744
2002-05-10 16:44:36 +00:00
..

                                   CAMEL
     

			A generic Messaging Library


                                   ----
				

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

Camel is a generic messaging library. It supports the standard 
messaging system for receiving and sending messages. It is the 
messaging backend for Evolution.

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.

 
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.

....
...