From ca5c50ddfeda1a3a8aaaaa7e1a42ab4c34200283 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Fri, 20 May 2005 13:12:05 +0000 Subject: Lots of work, filled out functions, cleaned up idl to make the data more 2005-05-20 Not Zed * 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 --- plugins/mail-remote/client.c | 101 +++++++++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 33 deletions(-) (limited to 'plugins/mail-remote/client.c') 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_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_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_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(" \n"); - } + for (j=0;j_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(" \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_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; } -- cgit v1.2.3