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.idl66
1 files changed, 54 insertions, 12 deletions
diff --git a/plugins/mail-remote/Evolution-DataServer-Mail.idl b/plugins/mail-remote/Evolution-DataServer-Mail.idl
index bcadaacd47..ffd32f8594 100644
--- a/plugins/mail-remote/Evolution-DataServer-Mail.idl
+++ b/plugins/mail-remote/Evolution-DataServer-Mail.idl
@@ -14,7 +14,7 @@ module GNOME {
module Evolution {
module Mail {
exception NOT_SUPPORTED {
- string why;
+// string why;
};
exception FAILED {
@@ -43,13 +43,38 @@ module Mail {
interface Session;
- struct Message {
+ // **********************************************************************
+ // MessageInfo wrappers
+ typedef string UserFlag;
+ typedef sequence <UserFlag> UserFlags;
+
+ struct UserTag {
+ string name;
+ string value; // value == "" == unset
+ };
+ typedef sequence <UserTag> UserTags;
+
+ struct MessageInfo {
string uid;
string subject;
string to;
string from;
+ long flags; // CamelMessageInfo flag bits
+ UserFlags userFlags;
+ UserTags userTags;
};
- typedef sequence <Message> Messages;
+ typedef sequence <MessageInfo> MessageInfos;
+
+ // Used to pass to altering functions
+ struct MessageInfoSet {
+ string uid;
+ long flagSet; // values bits to set in the flags
+ long flagMask; // mask of bits to change in the flags
+ UserFlags userFlagSet;
+ UserFlags userFlagUnset;
+ UserTags userTags;
+ };
+ typedef sequence <MessageInfoSet> MessageInfoSets;
/* ********************************************************************** */
// NB: tiny subset of omg properties service
@@ -78,30 +103,46 @@ module Mail {
struct StoreChange {
ChangeType type;
- Folders folders;
+ FolderInfos folders;
};
typedef sequence <StoreChange> StoreChanges;
struct FolderChange {
ChangeType type;
- Messages messages;
+ MessageInfos messages;
};
typedef sequence <FolderChange> FolderChanges;
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 sessionChanged(in Session session, in SessionChanges changes);
+ // maybe folder/store should be folderinfo/storeinfo?
+ oneway void storeChanged(in Session session, in Store store, in StoreChanges changes);
oneway void folderChanged(in Session session, in Store store, in Folder folder, in FolderChanges changes);
+
+ // session is closed/exited?
+ //oneway void closed();
};
/* ********************************************************************** */
interface Session : Bonobo::Unknown {
+ // Flags to pass to addListener
+ const long SESSION_ADDED = 1 << 0;
+ const long SESSION_CHANGED = 1 << 1;
+ const long SESSION_REMOVED = 1 << 2;
+ const long STORE_ADDED = 1 << 3;
+ const long STORE_CHANGED = 1 << 4;
+ const long STORE_REMOVED = 1 << 5;
+ const long FOLDER_ADDED = 1 << 6;
+ const long FOLDER_CHANGED = 1 << 7;
+ const long FOLDER_REMOVED = 1 << 8;
+
boolean getProperties(in PropertyNames names, out Properties props);
StoreInfos getStores(in string pattern);
- void addListener(in Listener listener);
+ /* flags defines what to listen to */
+ void addListener(in Listener listener, in long flags);
void removeListener(in Listener listener);
};
@@ -111,12 +152,12 @@ module Mail {
FolderInfos getFolders(in string pattern)
raises (NOT_SUPPORTED, FAILED);
- void sendMessage(in Bonobo::Stream msg, in string from, in string recipients)
+ void sendMessage(in Bonobo::Stream msg)
raises (NOT_SUPPORTED, FAILED);
};
interface MessageIterator : Bonobo::Unknown {
- Messages next(in long limit);
+ MessageInfos next(in long limit);
};
interface Folder : Bonobo::Unknown {
@@ -124,9 +165,10 @@ module Mail {
MessageIterator getMessages(in string pattern);
- Bonobo::Stream getMessage(in string uid);
+ void changeMessages(in MessageInfoSets infos);
-// void appendMessage(in MessageInfo info, in Bonobo::Stream msg);
+// Bonobo::Stream getMessage(in string uid);
+// void appendMessage(in MessageInfoSet info, in Bonobo::Stream msg);
};
};
};