diff options
author | Not Zed <NotZed@Ximian.com> | 2005-05-20 21:12:05 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2005-05-20 21:12:05 +0800 |
commit | ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283 (patch) | |
tree | abfaabf3ea4b49215ea76c79f15e0788e6e07a27 /plugins/mail-remote/Evolution-DataServer-Mail.idl | |
parent | ef769539607b93774280c2111ba6d2f159e121c7 (diff) | |
download | gsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.tar.gz gsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.tar.zst gsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.zip |
Lots of work, filled out functions, cleaned up idl to make the data more
2005-05-20 Not Zed <NotZed@Ximian.com>
* Lots of work, filled out functions, cleaned up idl to make the
data more useful, added a listener interface, etc.
svn path=/trunk/; revision=29395
Diffstat (limited to 'plugins/mail-remote/Evolution-DataServer-Mail.idl')
-rw-r--r-- | plugins/mail-remote/Evolution-DataServer-Mail.idl | 74 |
1 files changed, 57 insertions, 17 deletions
diff --git a/plugins/mail-remote/Evolution-DataServer-Mail.idl b/plugins/mail-remote/Evolution-DataServer-Mail.idl index f6c15348ad..bcadaacd47 100644 --- a/plugins/mail-remote/Evolution-DataServer-Mail.idl +++ b/plugins/mail-remote/Evolution-DataServer-Mail.idl @@ -17,14 +17,40 @@ module Mail { string why; }; + exception FAILED { + string why; + }; + interface Folder; typedef sequence<Folder> Folders; + struct FolderInfo { + string name; + string full_name; + Folder folder; + }; + typedef sequence <FolderInfo> FolderInfos; + interface Store; typedef sequence<Store> Stores; + struct StoreInfo { + string name; + string uid; + Store store; + }; + typedef sequence <StoreInfo> StoreInfos; + interface Session; + struct Message { + string uid; + string subject; + string to; + string from; + }; + typedef sequence <Message> Messages; + /* ********************************************************************** */ // NB: tiny subset of omg properties service typedef string PropertyName; @@ -37,13 +63,35 @@ module Mail { /* ********************************************************************** */ + enum ChangeType { + ADDED, + REMOVED, + CHANGED + }; + // ?? - interface Listener { - void storeAdded(in Store store); - void storeRemoved(in Store store); + struct SessionChange { + ChangeType type; + StoreInfos stores; + }; + typedef sequence <SessionChange> SessionChanges; + + struct StoreChange { + ChangeType type; + Folders folders; + }; + typedef sequence <StoreChange> StoreChanges; + + struct FolderChange { + ChangeType type; + Messages messages; + }; + typedef sequence <FolderChange> FolderChanges; - void folderAdded(in Store store, in Folder folder); - void folderRemoved(in Store store, in Folder folder); + interface Listener : Bonobo::Unknown { + oneway void sessionChanged(in Session session, in SessionChange change); + oneway void storeChanged(in Session session, in Store store, in StoreChanges change); + oneway void folderChanged(in Session session, in Store store, in Folder folder, in FolderChanges changes); }; /* ********************************************************************** */ @@ -51,7 +99,7 @@ module Mail { interface Session : Bonobo::Unknown { boolean getProperties(in PropertyNames names, out Properties props); - Stores getStores(in string pattern); + StoreInfos getStores(in string pattern); void addListener(in Listener listener); void removeListener(in Listener listener); @@ -60,21 +108,13 @@ module Mail { interface Store : Bonobo::Unknown { boolean getProperties(in PropertyNames names, out Properties props); - Folders getFolders(in string pattern) - raises (NOT_SUPPORTED); + FolderInfos getFolders(in string pattern) + raises (NOT_SUPPORTED, FAILED); void sendMessage(in Bonobo::Stream msg, in string from, in string recipients) - raises (NOT_SUPPORTED); + raises (NOT_SUPPORTED, FAILED); }; - struct Message { - string uid; - string subject; - string to; - string from; - }; - - typedef sequence <Message> Messages; interface MessageIterator : Bonobo::Unknown { Messages next(in long limit); }; |