aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mail-remote/Evolution-DataServer-Mail.idl
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2005-05-20 21:12:05 +0800
committerMichael Zucci <zucchi@src.gnome.org>2005-05-20 21:12:05 +0800
commitca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283 (patch)
treeabfaabf3ea4b49215ea76c79f15e0788e6e07a27 /plugins/mail-remote/Evolution-DataServer-Mail.idl
parentef769539607b93774280c2111ba6d2f159e121c7 (diff)
downloadgsoc2013-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.idl74
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);
};