Changeset 2533

Show
Ignore:
Timestamp:
10/01/07 22:40:18 (1 year ago)
Author:
dfriedrich
Message:

initial evo2 plugin discover function commit

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/evolution2/src/evolution2_sync.c

    r2527 r2533  
    265265        osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, error); 
    266266         
     267        GError* gerror = NULL; 
     268        GList* fields = NULL; 
    267269        OSyncEvoEnv *env = (OSyncEvoEnv *)data; 
    268270         
     
    276278                osync_objtype_sink_set_available(env->tasks_sink, TRUE); 
    277279         
     280        OSyncVersion *version = osync_version_new(error); 
     281        osync_version_set_plugin(version, "Evolution"); 
     282        osync_version_set_modelversion(version, "2"); 
     283        //osync_version_set_firmwareversion(version, "firmwareversion"); 
     284        //osync_version_set_softwareversion(version, "softwareversion"); 
     285        //osync_version_set_hardwareversion(version, "hardwareversion"); 
     286        osync_plugin_info_set_version(info, version); 
     287        osync_version_unref(version); 
     288         
     289        EBook* ebook; 
     290        if (!(ebook = e_book_new_default_addressbook(&gerror))) { 
     291                osync_error_set(error, OSYNC_ERROR_GENERIC, "Failed to alloc new default addressbook: %s", gerror ? gerror->message : "None"); 
     292                goto error; 
     293        } 
     294        if (!e_book_open(ebook, TRUE, &gerror)) { 
     295                osync_error_set(error, OSYNC_ERROR_GENERIC, "Failed to open addressbook: %s", gerror ? gerror->message : "None"); 
     296                goto error_free_book; 
     297        } 
     298        if (!(e_book_get_supported_fields (ebook, &fields, &gerror))) { 
     299                osync_error_set(error, OSYNC_ERROR_GENERIC, "Failed to get supported fields: %s", gerror ? gerror->message : "None"); 
     300                goto error_free_book; 
     301        } 
     302         
     303        OSyncCapabilities* capabilities = osync_capabilities_new(error); 
     304        if(capabilities == NULL) 
     305                goto error; 
     306         
     307        for(; fields; fields = g_list_next(fields)) 
     308        { 
     309                osync_capability_new(capabilities, "contact", fields->data, error); 
     310                g_free(fields->data);    
     311        } 
     312        g_list_free(fields); 
     313         
     314        g_object_unref(ebook); 
     315         
     316        osync_plugin_info_set_capabilities(info, capabilities); 
     317        osync_capabilities_unref(capabilities); 
     318         
     319         
    278320        osync_trace(TRACE_EXIT, "%s", __func__); 
    279321        return TRUE; 
     322 
     323error_free_book: 
     324                g_object_unref(env->addressbook); 
     325error: 
     326        osync_trace(TRACE_ERROR, "%s: %s", __func__, osync_error_print(error)); 
     327        return FALSE; 
    280328} 
    281329 
  • plugins/evolution2/src/evolution2_sync.h

    r2527 r2533  
    1010#include <opensync/opensync-data.h> 
    1111#include <opensync/opensync-helper.h> 
     12#include <opensync/opensync-merger.h> 
     13#include <opensync/opensync-version.h> 
    1214 
    1315#include <libecal/e-cal.h>