aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mail-remote/Evolution-DataServer-Mail.idl
diff options
context:
space:
mode:
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);
};