From: <svn...@op...> - 2009-09-21 16:10:59
|
Author: henrik Date: Mon Sep 21 18:10:41 2009 New Revision: 5823 URL: http://www.opensync.org/changeset/5823 Log: Update to latest OpenSync API changes Modified: plugins/mozilla-sync/trunk/src/mozilla-sync.cpp Modified: plugins/mozilla-sync/trunk/src/mozilla-sync.cpp ============================================================================== --- plugins/mozilla-sync/trunk/src/mozilla-sync.cpp Sun Sep 20 22:19:53 2009 (r5822) +++ plugins/mozilla-sync/trunk/src/mozilla-sync.cpp Mon Sep 21 18:10:41 2009 (r5823) @@ -285,7 +285,10 @@ LOG_EXIT_REPORT_ERROR_OSYNC(0, pOSyncContext, pError); return FALSE; } - osync_xmlformat_sort(pXMLFormat); + if (!osync_xmlformat_sort(pXMLFormat, &pError)) { + LOG_EXIT_REPORT_ERROR_OSYNC(0, pOSyncContext, pError); + return FALSE; + } GFREE(szXML); OSyncData *odata = NULL; @@ -714,6 +717,7 @@ OSyncHashTable *pHT = osync_objtype_sink_get_hashtable(pOSyncObjTypeSink); gboolean f; + OSyncError *pError = NULL; OSyncData *pOSyncData=osync_change_get_data(pChange); if (!pOSyncData) { LOG_EXIT_REPORT_ERROR_SZ(10, pOSyncContext, "Change has no data"); return; } @@ -734,8 +738,14 @@ if ( (changeType==OSYNC_CHANGE_TYPE_ADDED) || (changeType==OSYNC_CHANGE_TYPE_MODIFIED) ) { OSyncXMLFormat *pXMLFormat = (OSyncXMLFormat *)pVoidBuffer; unsigned int size; - osync_xmlformat_assemble(pXMLFormat, &szXML, &size); - osync_xmlformat_sort(pXMLFormat); + if (!osync_xmlformat_assemble(pXMLFormat, &szXML, &size, &pError)) { + LOG_EXIT_REPORT_ERROR_OSYNC(0, pOSyncContext, pError); + return; + } + if (!osync_xmlformat_sort(pXMLFormat, &pError)) { + LOG_EXIT_REPORT_ERROR_OSYNC(0, pOSyncContext, pError); + return; + } LOG_SENSITIVE(1000, "%s", szXML); } ThunderbirdAddressbook *pAB = pOSyncMozillaDatabase->pThunderbirdAddressbook; @@ -895,23 +905,31 @@ } + +// ---------------------------------------- + typedef struct _CapDef { - OSyncCapabilities *pCapabilities; - const char* szObject; + OSyncCapabilitiesObjType *pCapabilitiesObjType; const char* szCap; gboolean fError; OSyncError **ppOSyncError; } CapDef; + +// ---------------------------------------- + void addCapabilityEvent(void* voidSz, void* voidPCapDef) { CapDef *pCapDef=(CapDef*) voidPCapDef; if (pCapDef->fError) return; char *sz = (char*) voidSz; - LOG(10, "Capability: [%s] [%s]", pCapDef->szObject, sz); - OSyncCapability *c=osync_capability_new(pCapDef->pCapabilities, g_strdup(pCapDef->szObject), g_strdup(sz), pCapDef->ppOSyncError); - if (!c) pCapDef->fError=TRUE; + LOG(10, "Capability: [%s]", sz); + + OSyncCapability *pCapability = osync_capability_new(pCapDef->pCapabilitiesObjType, pCapDef->ppOSyncError); + if (!pCapability) pCapDef->fError=TRUE; + osync_capability_set_name(pCapability, g_strdup(sz)); } + // ---------------------------------------- /** @brief Discover sinks @@ -1081,32 +1099,40 @@ } - OSyncCapabilities *pCapabilities = osync_capabilities_new(ppOSyncError); + OSyncCapabilities *pCapabilities=NULL; CapDef capDef; - capDef.pCapabilities=pCapabilities; capDef.fError=FALSE; capDef.ppOSyncError=ppOSyncError; - GList *pGList; if (pOSyncMozillaEnv->mozillaConfig.szCalendarId) { + pCapabilities=osync_capabilities_new("vformat", ppOSyncError); + if (!pCapabilities) goto error; + capDef.pCapabilitiesObjType=osync_capabilities_objtype_new(pCapabilities, "event", ppOSyncError); + if (!capDef.pCapabilitiesObjType) goto error; pGList=PGListEventCapabilities(); - capDef.szObject="event"; g_list_foreach(pGList, addCapabilityEvent, &capDef); } if (pOSyncMozillaEnv->mozillaConfig.szAddressbookFile) { + pCapabilities=osync_capabilities_new("xmlformat", ppOSyncError); + if (!pCapabilities) goto error; + capDef.pCapabilitiesObjType=osync_capabilities_objtype_new(pCapabilities, "contact", ppOSyncError); + if (!capDef.pCapabilitiesObjType) goto error; pGList=ThunderbirdCard::PGListCapabilities(); - capDef.szObject="contact"; g_list_foreach(pGList, addCapabilityEvent, &capDef); - osync_plugin_info_set_capabilities(pOSyncPluginInfo, pCapabilities); } + osync_plugin_info_set_capabilities(pOSyncPluginInfo, pCapabilities); if (capDef.fError) { LOG_EXIT_ERROR_OSYNC_SZ(10, capDef.ppOSyncError, "Could not add capability"); return NULL; } LOG_EXIT(10, "(%p)", pOSyncMozillaEnv); return (void*) pOSyncMozillaEnv; + +error: + LOG_EXIT_ERROR_OSYNC_SZ(10, capDef.ppOSyncError, "Could not add capabilities"); + return NULL; } @@ -1168,8 +1194,15 @@ osync_plugin_set_initialize_timeout(pOSyncPlugin, 5*60); // 3 minutes osync_plugin_set_finalize_timeout(pOSyncPlugin, 5*60); // 3 minutes - osync_plugin_env_register_plugin(pOSyncPluginEnv, pOSyncPlugin); + + osync_bool f; + f=osync_plugin_env_register_plugin(pOSyncPluginEnv, pOSyncPlugin, ppOSyncError); osync_plugin_unref(pOSyncPlugin); + + if (!f) { + LOG_EXIT(10, "FALSE"); + return FALSE; + } LOG_EXIT(10, "TRUE"); return TRUE; |