aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mail-remote/client.c
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/client.c
parentef769539607b93774280c2111ba6d2f159e121c7 (diff)
downloadgsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.tar
gsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.tar.gz
gsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.tar.bz2
gsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.tar.lz
gsoc2013-evolution-ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283.tar.xz
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/client.c')
-rw-r--r--plugins/mail-remote/client.c101
1 files changed, 68 insertions, 33 deletions
diff --git a/plugins/mail-remote/client.c b/plugins/mail-remote/client.c
index d275de107d..c2e2427250 100644
--- a/plugins/mail-remote/client.c
+++ b/plugins/mail-remote/client.c
@@ -3,6 +3,10 @@
#include "Evolution-DataServer-Mail.h"
+#include "evolution-mail-listener.h"
+
+static EvolutionMailListener *listener;
+
static GNOME_Evolution_Mail_Session
get_session(void)
{
@@ -18,16 +22,26 @@ get_session(void)
g_free(ior);
}
+ if (sess != CORBA_OBJECT_NIL) {
+ listener = evolution_mail_listener_new();
+ GNOME_Evolution_Mail_Session_addListener(sess, bonobo_object_corba_objref((BonoboObject *)listener), &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ printf("AddListener failed: %s\n", ev._id);
+ CORBA_exception_free(&ev);
+ }
+ }
+
return sess;
}
-int main(int argc, char **argv)
+static int domain(void *data)
{
GNOME_Evolution_Mail_Session sess;
- GNOME_Evolution_Mail_Stores *stores;
+ GNOME_Evolution_Mail_StoreInfos *stores;
+ GNOME_Evolution_Mail_FolderInfos *folders;
CORBA_Environment ev = { 0 };
+ int i, j, f;
- bonobo_init(&argc, argv);
sess = get_session();
@@ -38,50 +52,71 @@ int main(int argc, char **argv)
}
printf("Got %d stores\n", stores->_length);
- {
+ for (i=0;i<stores->_length;i++) {
GNOME_Evolution_Mail_PropertyName namesarray[] = {
"name", "uid"
};
GNOME_Evolution_Mail_PropertyNames names = {
- 1, 1,
+ 2, 2,
namesarray,
FALSE,
};
GNOME_Evolution_Mail_Properties *props;
- int i, j;
-
- for (i=0;i<stores->_length;i++) {
- GNOME_Evolution_Mail_Store store = stores->_buffer[i];
-
- printf("store %p\n", store);
-
- GNOME_Evolution_Mail_Store_getProperties(store, &names, &props, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- printf("getProperties failed\n");
- return 1;
- }
+ GNOME_Evolution_Mail_Store store = stores->_buffer[i].store;
+
+ printf("store %p '%s' uid '%s'\n", store, stores->_buffer[i].name, stores->_buffer[i].uid);
+
+ GNOME_Evolution_Mail_Store_getProperties(store, &names, &props, &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ printf("getProperties failed\n");
+ return 1;
+ }
- for (j=0;j<props->_length;j++) {
- printf(" %s = (%s)", props->_buffer[j].name, ORBit_tk_to_name(props->_buffer[j].value._type->kind));
- if (props->_buffer[j].value._type == TC_CORBA_string) {
- printf(" '%s'\n", props->_buffer[j].value._value);
- } else {
- printf(" '%s' ", BONOBO_ARG_GET_STRING(&props->_buffer[j].value));
- printf(" <unknonw type>\n");
- }
+ for (j=0;j<props->_length;j++) {
+ printf(" %s = (%s)", props->_buffer[j].name, ORBit_tk_to_name(props->_buffer[j].value._type->kind));
+ if (props->_buffer[j].value._type == TC_CORBA_string) {
+ printf(" '%s'\n", props->_buffer[j].value._value);
+ } else {
+ printf(" '%s' ", BONOBO_ARG_GET_STRING(&props->_buffer[j].value));
+ printf(" <unknonw type>\n");
}
+ }
- CORBA_free(props);
-
- printf("attempt send mail to store\n");
- GNOME_Evolution_Mail_Store_sendMessage(store, NULL, "notzed@ximian.com", "notzed@novell.com, user@host", &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- printf("sendmessage failed\n");
- /* FIXME:L leaks ex data? */
- CORBA_exception_init(&ev);
+ CORBA_free(props);
+#if 0
+ printf("attempt send mail to store\n");
+ GNOME_Evolution_Mail_Store_sendMessage(store, NULL, "notzed@ximian.com", "notzed@novell.com, user@host", &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ printf("sendmessage failed\n");
+ /* FIXME:L leaks ex data? */
+ CORBA_exception_init(&ev);
+ }
+#endif
+
+ folders = GNOME_Evolution_Mail_Store_getFolders(store, "", &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ printf("getfolders failed\n");
+ /* FIXME: leaks ex data? */
+ CORBA_exception_free(&ev);
+ } else {
+ for (f = 0; f<folders->_length;f++) {
+ printf("folder %p full:'%s' name:'%s'\n", folders->_buffer[f].folder, folders->_buffer[f].full_name, folders->_buffer[f].name);
}
}
}
CORBA_free(stores);
+
+ return 0;
+}
+
+int main(int argc, char **argv)
+{
+ bonobo_init(&argc, argv);
+
+ g_idle_add(domain, NULL);
+
+ bonobo_main();
+
+ return 0;
}