diff options
author | Not Zed <NotZed@Ximian.com> | 2005-05-27 19:18:41 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2005-05-27 19:18:41 +0800 |
commit | 7265cc314c68f9b9b0196661540bed628b5aad16 (patch) | |
tree | 33ad1883f3d4a77c202fbd242a0d06313b870e21 /plugins/mail-remote/Evolution-DataServer-Mail.idl | |
parent | 07419207d4478491adfbcc63776388db5723787b (diff) | |
download | gsoc2013-evolution-7265cc314c68f9b9b0196661540bed628b5aad16.tar.gz gsoc2013-evolution-7265cc314c68f9b9b0196661540bed628b5aad16.tar.zst gsoc2013-evolution-7265cc314c68f9b9b0196661540bed628b5aad16.zip |
A camel-stream to wrap Evolution_Mail_MessageStream.
2005-05-27 Not Zed <NotZed@Ximian.com>
* em-message-stream.[ch]: A camel-stream to wrap
Evolution_Mail_MessageStream.
* evolution-mail-messagestream.[ch]: simplified read-only stream
interface rather than using bonobo-stream. It wraps a
camel-stream only & simplified lifecycle management.
* evolution-mail-store.c (evolution_mail_store_changed): if we
have no more listeners, close the camelstore object off.
* Evolution-DataServer-Mail.idl: changed exceptions to use one
exception type with details. Fixed code to use these.
svn path=/trunk/; revision=29418
Diffstat (limited to 'plugins/mail-remote/Evolution-DataServer-Mail.idl')
-rw-r--r-- | plugins/mail-remote/Evolution-DataServer-Mail.idl | 84 |
1 files changed, 55 insertions, 29 deletions
diff --git a/plugins/mail-remote/Evolution-DataServer-Mail.idl b/plugins/mail-remote/Evolution-DataServer-Mail.idl index 4d6b0ad43d..453637f643 100644 --- a/plugins/mail-remote/Evolution-DataServer-Mail.idl +++ b/plugins/mail-remote/Evolution-DataServer-Mail.idl @@ -1,4 +1,4 @@ -/* Evolution Mail Interface +/* Evolution Mail Data Interface * * Copyright (C) 2005 Novell, Inc. * @@ -12,14 +12,34 @@ module Evolution { module Mail { - exception NOT_SUPPORTED { -// string why; + /* ********************************************************************** */ + // NB: tiny subset of omg properties service + typedef string PropertyName; + typedef sequence <PropertyName> PropertyNames; + struct Property { + PropertyName name; + any value; + }; + typedef sequence <Property> Properties; + + /* ********************************************************************** */ + // exceptions + + enum ErrorType { + SYSTEM_ERROR, + CAMEL_ERROR, + FAILED, + NOT_SUPPORTED, + NO_PERMISSION }; - exception FAILED { -// string why; + exception MailException { + ErrorType id; + string desc; }; + /* ********************************************************************** */ + // Main interfaces interface Folder; typedef sequence<Folder> Folders; @@ -76,14 +96,22 @@ module Mail { typedef sequence <MessageInfoSet> MessageInfoSets; /* ********************************************************************** */ - // NB: tiny subset of omg properties service - typedef string PropertyName; - typedef sequence <PropertyName> PropertyNames; - struct Property { - PropertyName name; - any value; + /* Messages are passed as full rfc822 encoded messages in a stream */ + typedef sequence <octet>Buffer; + + interface MessageStream : Bonobo::Unknown { + Buffer next(in long size) + raises (MailException); + + void dispose(); + }; + + interface MessageIterator : Bonobo::Unknown { + MessageInfos next(in long limit) + raises (MailException); + + void dispose(); }; - typedef sequence <Property> Properties; /* ********************************************************************** */ @@ -119,6 +147,10 @@ module Mail { oneway void changed(in Session session, in SessionChanges changes); oneway void shutdown(in Session session); + + // We need to use gnome-keyring instead of an interface like this? + // Or does gnome-keyring run off this? + //string getPassword(in Session session, string uri, string domain, string item, string prompt, long flags); }; interface StoreListener : Bonobo::Unknown { @@ -139,7 +171,8 @@ module Mail { interface Session : Bonobo::Unknown { boolean getProperties(in PropertyNames names, out Properties props); - StoreInfos getStores(in string pattern, in StoreListener listener); + StoreInfos getStores(in string pattern, in StoreListener listener) + raises (MailException); void addListener(in SessionListener listener); void removeListener(in SessionListener listener); @@ -149,33 +182,26 @@ module Mail { boolean getProperties(in PropertyNames names, out Properties props); FolderInfos getFolders(in string pattern, in FolderListener listener) - raises (NOT_SUPPORTED, FAILED); - - void sendMessage(in Bonobo::Stream msg) - raises (NOT_SUPPORTED, FAILED); - }; + raises (MailException); - interface MessageIterator : Bonobo::Unknown { - MessageInfos next(in long limit) - raises (FAILED); - - void dispose(); + void sendMessage(in MessageStream msg) + raises (MailException); }; interface Folder : Bonobo::Unknown { boolean getProperties(in PropertyNames names, out Properties props); MessageIterator getMessages(in string pattern) - raises (NOT_SUPPORTED, FAILED); + raises (MailException); void changeMessages(in MessageInfoSets infos) - raises (NOT_SUPPORTED); + raises (MailException); - Bonobo::Stream getMessage(in string uid) - raises (NOT_SUPPORTED, FAILED); + MessageStream getMessage(in string uid) + raises (MailException); - void appendMessage(in MessageInfoSet info, in Bonobo::Stream msg) - raises (NOT_SUPPORTED, FAILED); + void appendMessage(in MessageInfoSet info, in MessageStream msg) + raises (MailException); }; }; }; |