GNOME mailer/message client
- From: Scott Wimer <scottw dev cgibuilder com>
- To: gnome-list gnome org
- Subject: GNOME mailer/message client
- Date: Tue, 20 Apr 1999 11:04:28 -0700 (PDT)
Okay,
where'd the discussion head off to? :)
Here's the guts of my idea for a GNOME Message manager. Basically,
we've got 3 layers:
1) Data presentation
2) Data source
3) Glue between 1 and 2
Now, we've seen folks saying that they want a Balsa front end, or
a Pine front end, or an elm, or a mutt, or a whatever front end.
So, the data presentation layer needs to be plugable.
Also, folks have wanted messages to come from POP3 accounts, mbox
files, qmail files, IMAP servers, news servers, wherever. So, the
data source layer is going to need to be plugable.
I envision a middle layer that provides an API to the presentation
layer, and an API to the data source layer.
The API provided to each layer doesn't have to be all that complex
for it to be powerful. Here's a real rough cut at these APIs:
For the Presentation Layer
getIndex(IndexName)
Returns the Index for Folder/Grouping "IndexName"
removeMessage(IndexName, MessageID)
Removes the specified Message from IndexName
addMessage(IndexName, MessageID)
Adds Message to IndexName
newIndex(IndexName)
Creates a new Index
compactIndex(IndexName)
Compacts the storage associated with IndexName
getMessage(MessageID)
Returns the Message
copyMessage(MessageID)
Returns a copy of the Message, with a new ID generated for it
Ideally, the Index would either be an array or a linked list of
Index Items. I suspect that an Index item will look something like:
<MessageID><Subject><Message location><Other rapidly needed data>
I want the Index to contain all the data needed at the presentation
layer. This should make the front ends reasonably fast.
On the backend, I've tried to make the API implementation independant.
here's what I've thought of so far. The functions that deal with
Message fetching and such will need to be rewritten for each new
Message source medium. This is a very simple API right now.
getMessage()
Retrieves data from a source and stores it as a Message.
New Messages are given auto membership in whatever the
default group is. This can optionally write the Message
to local storage. That's up to the implementor of the
particular back end.
deleteMessage(MessageID)
Removes Message from whatever the actual source medium or
storage medium for the Message is.
--
Scott Wimer
play ---> scottw@cgibuilder.com http://www.cgibuilder.com/
work ---> scottw@corp.earthlink.net http://www.earthlink.net/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]