From: <svn...@op...> - 2009-07-07 14:47:57
|
Author: bellmich Date: Tue Jul 7 16:47:34 2009 New Revision: 1154 URL: http://libsyncml.opensync.org/changeset/1154 Log: - migrated data sync API from SmlError to GError - fixed some warnings because of not handled enum elements Modified: trunk/libsyncml/data_sync_api/callbacks.h trunk/libsyncml/data_sync_api/data_sync.c trunk/libsyncml/data_sync_api/data_sync.h trunk/libsyncml/data_sync_api/data_sync_abort.c trunk/libsyncml/data_sync_api/data_sync_callbacks.c trunk/libsyncml/data_sync_api/data_sync_callbacks.h trunk/libsyncml/data_sync_api/data_sync_client.c trunk/libsyncml/data_sync_api/data_sync_client.h trunk/libsyncml/data_sync_api/data_sync_common.c trunk/libsyncml/data_sync_api/data_sync_common.h trunk/libsyncml/data_sync_api/data_sync_devinf.c trunk/libsyncml/data_sync_api/data_sync_devinf.h trunk/libsyncml/data_sync_api/data_sync_loop.c trunk/libsyncml/data_sync_api/data_sync_loop.h trunk/libsyncml/data_sync_api/data_sync_server.c trunk/libsyncml/data_sync_api/data_sync_server.h trunk/libsyncml/data_sync_api/standard.h trunk/libsyncml/data_sync_api/transport.h trunk/libsyncml/data_sync_api/transport_http_client.c trunk/libsyncml/data_sync_api/transport_http_server.c trunk/libsyncml/data_sync_api/transport_obex_client.c trunk/libsyncml/objects/sml_auth.h trunk/libsyncml/objects/sml_devinf_obj.h trunk/libsyncml/objects/sml_ds_server.h trunk/libsyncml/objects/sml_ds_server_internals.h trunk/libsyncml/sml_manager.c trunk/libsyncml/sml_transport.c Modified: trunk/libsyncml/data_sync_api/callbacks.h ============================================================================== --- trunk/libsyncml/data_sync_api/callbacks.h Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/callbacks.h Tue Jul 7 16:47:34 2009 (r1154) @@ -1,6 +1,6 @@ /* * libsyncml - A syncml protocol implementation - * Copyright (C) 2008 Michael Bell <mic...@op...> + * Copyright (C) 2008-2009 Michael Bell <mic...@op...> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -41,63 +41,60 @@ SmlDataSyncObject *dsObject, SmlDataSyncEventType type, void *userdata, - SmlError *error); + const GError *error); typedef SmlAlertType (* SmlDataSyncGetAlertTypeCallback) ( SmlDataSyncObject *dsObject, - const char *source, + const gchar *source, SmlAlertType type, void *userdata, - SmlError **error); -typedef SmlBool (* SmlDataSyncChangeCallback) ( + GError **error); +typedef gboolean (* SmlDataSyncChangeCallback) ( SmlDataSyncObject *dsObject, - const char *source, + const gchar *source, SmlChangeType type, - const char *uid, - char *data, - unsigned int size, + const gchar *uid, + gchar *data, + gsize size, void *userdata, - SmlError **error); -/* FIXME: newuid must be removed before next API break */ -/* FIXME: DEPRECATED */ -typedef SmlBool (* SmlDataSyncChangeStatusCallback) ( + GError **error); +typedef gboolean (* SmlDataSyncChangeStatusCallback) ( SmlDataSyncObject *dsObject, - unsigned int code, - const char *newuid, + guint code, void *userdata, - SmlError **error); -typedef SmlBool (* SmlDataSyncMappingCallback) ( + GError **error); +typedef gboolean (* SmlDataSyncMappingCallback) ( SmlDataSyncObject *dsObject, - const char *source, - const char *orig, - const char *newuid, + const gchar *source, + const gchar *orig, + const gchar *newuid, void *userdata, - SmlError **error); -typedef char *(* SmlDataSyncGetAnchorCallback) ( + GError **error); +typedef gchar *(* SmlDataSyncGetAnchorCallback) ( SmlDataSyncObject *dsObject, - const char *name, + const gchar *name, void *userdata, - SmlError **error); -typedef SmlBool (* SmlDataSyncSetAnchorCallback) ( + GError **error); +typedef gboolean (* SmlDataSyncSetAnchorCallback) ( SmlDataSyncObject *dsObject, - const char *name, - const char *value, + const gchar *name, + const gchar *value, void *userdata, - SmlError **error); -typedef SmlBool (* SmlDataSyncWriteDevInfCallback) ( + GError **error); +typedef gboolean (* SmlDataSyncWriteDevInfCallback) ( SmlDataSyncObject *dsObject, SmlDevInf *devinf, void *userdata, - SmlError **error); + GError **error); typedef SmlDevInf *(* SmlDataSyncReadDevInfCallback) ( SmlDataSyncObject *dsObject, - const char *devid, + const gchar *devid, void *userdata, - SmlError **error); -typedef SmlBool (* SmlDataSyncHandleRemoteDevInfCallback) ( + GError **error); +typedef gboolean (* SmlDataSyncHandleRemoteDevInfCallback) ( SmlDataSyncObject *dsObject, SmlDevInf *devinf, void *userdata, - SmlError **error); + GError **error); /* functions to register the callbacks */ Modified: trunk/libsyncml/data_sync_api/data_sync.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync.c Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync.c Tue Jul 7 16:47:34 2009 (r1154) @@ -43,10 +43,10 @@ /* object creation and configuration */ /* ********************************* */ -SmlDataSyncObject *smlDataSyncNew( - SmlSessionType dsType, - SmlTransportType tspType, - SmlError **error) +SmlDataSyncObject* +smlDataSyncNew (SmlSessionType dsType, + SmlTransportType tspType, + GError **error) { smlTrace(TRACE_ENTRY, "%s(%d, %d, %p)", __func__, dsType, tspType, error); CHECK_ERROR_REF @@ -90,8 +90,8 @@ dsObject->funcTspConnect = smlDataSyncTransportHttpClientConnect; break; default: - smlErrorSet(error, SML_ERROR_INTERNAL_MISCONFIGURATION, - "Unknown transport type %d used in __func__.", + g_set_error(error, SML_ERROR, SML_ERROR_INTERNAL_MISCONFIGURATION, + "Unknown transport type %d used in %s.", tspType, __func__); goto error; break; @@ -107,7 +107,7 @@ dsObject->funcDsConnect = NULL; break; default: - smlErrorSet(error, SML_ERROR_INTERNAL_MISCONFIGURATION, + g_set_error(error, SML_ERROR, SML_ERROR_INTERNAL_MISCONFIGURATION, "Unknown data sync type %d used in %s.", dsType, __func__); goto error; @@ -122,7 +122,7 @@ smlTransportFree(dsObject->tsp); smlDataSyncObjectUnref(&dsObject); } - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return NULL; } @@ -131,11 +131,11 @@ g_atomic_int_inc(&(dsObject->refCount)); } -SmlBool smlDataSyncSetOption( - SmlDataSyncObject *dsObject, - const char *name, - const char *value, - SmlError **error) +gboolean +smlDataSyncSetOption (SmlDataSyncObject *dsObject, + const gchar *name, + const gchar *value, + GError **error) { smlTrace(TRACE_ENTRY, "%s(%p, %s, %s, %p)", __func__, dsObject, VA_STRING(name), VA_STRING(value), error); CHECK_ERROR_REF @@ -162,7 +162,7 @@ if (!strcmp("1.2", value)) dsObject->version = SML_VERSION_12; if (dsObject->version == SML_VERSION_UNKNOWN) { - smlErrorSet(error, SML_ERROR_INTERNAL_MISCONFIGURATION, + g_set_error(error, SML_ERROR, SML_ERROR_INTERNAL_MISCONFIGURATION, "Unknown SyncML version %s.", value); goto error; } @@ -175,7 +175,7 @@ dsObject->authType = SML_AUTH_TYPE_UNKNOWN; } else { // this is an illegal keyword - smlErrorSet(error, SML_ERROR_INTERNAL_MISCONFIGURATION, + g_set_error(error, SML_ERROR, SML_ERROR_INTERNAL_MISCONFIGURATION, "Unknown authentication type %s.", value); goto error; } @@ -245,15 +245,16 @@ smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } -SmlBool smlDataSyncAddDatastore(SmlDataSyncObject *dsObject, - const char *contentType, - const char *target, - const char *source, - SmlError **error) +gboolean +smlDataSyncAddDatastore (SmlDataSyncObject *dsObject, + const gchar *contentType, + const gchar *target, + const gchar *source, + GError **error) { smlTrace(TRACE_ENTRY, "%s(%p, %s, %s, %s, %p)", __func__, dsObject, VA_STRING(contentType), VA_STRING(target), VA_STRING(source), error); CHECK_ERROR_REF @@ -333,14 +334,14 @@ smlSafeCFree(&lcCT); if (lcSource) smlSafeCFree(&lcSource); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } -static SmlDataSyncDatastore *smlDataSyncGetDatastoreFromSource( - SmlDataSyncObject *dsObject, - const char *source, - SmlError **error) +static SmlDataSyncDatastore* +smlDataSyncGetDatastoreFromSource (SmlDataSyncObject *dsObject, + const gchar *source, + GError **error) { CHECK_ERROR_REF smlAssert(dsObject); @@ -353,7 +354,7 @@ return datastore; } - smlErrorSet(error, SML_ERROR_INTERNAL_MISCONFIGURATION, + g_set_error(error, SML_ERROR, SML_ERROR_INTERNAL_MISCONFIGURATION, "Cannot find datastore for source name %s.", source); return NULL; } @@ -362,10 +363,10 @@ /* register callbacks */ /* ***************************** */ -void smlDataSyncRegisterEventCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncEventCallback callback, - void *userdata) +void +smlDataSyncRegisterEventCallback (SmlDataSyncObject *dsObject, + SmlDataSyncEventCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -377,10 +378,10 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterGetAlertTypeCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncGetAlertTypeCallback callback, - void *userdata) +void +smlDataSyncRegisterGetAlertTypeCallback (SmlDataSyncObject *dsObject, + SmlDataSyncGetAlertTypeCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -392,10 +393,10 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterChangeCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncChangeCallback callback, - void *userdata) +void +smlDataSyncRegisterChangeCallback (SmlDataSyncObject *dsObject, + SmlDataSyncChangeCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -418,9 +419,9 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterChangeStatusCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncChangeStatusCallback callback) +void +smlDataSyncRegisterChangeStatusCallback (SmlDataSyncObject *dsObject, + SmlDataSyncChangeStatusCallback callback) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -432,10 +433,10 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterMapCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncMappingCallback callback, - void *userdata) +void +smlDataSyncRegisterMapCallback (SmlDataSyncObject *dsObject, + SmlDataSyncMappingCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -457,10 +458,10 @@ } -void smlDataSyncRegisterGetAnchorCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncGetAnchorCallback callback, - void *userdata) +void +smlDataSyncRegisterGetAnchorCallback (SmlDataSyncObject *dsObject, + SmlDataSyncGetAnchorCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -472,10 +473,10 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterSetAnchorCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncSetAnchorCallback callback, - void *userdata) +void +smlDataSyncRegisterSetAnchorCallback (SmlDataSyncObject *dsObject, + SmlDataSyncSetAnchorCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -487,10 +488,10 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterWriteDevInfCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncWriteDevInfCallback callback, - void *userdata) +void +smlDataSyncRegisterWriteDevInfCallback (SmlDataSyncObject *dsObject, + SmlDataSyncWriteDevInfCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -502,10 +503,10 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterReadDevInfCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncReadDevInfCallback callback, - void *userdata) +void +smlDataSyncRegisterReadDevInfCallback (SmlDataSyncObject *dsObject, + SmlDataSyncReadDevInfCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -517,10 +518,10 @@ smlTrace(TRACE_EXIT, "%s", __func__); } -void smlDataSyncRegisterHandleRemoteDevInfCallback( - SmlDataSyncObject *dsObject, - SmlDataSyncHandleRemoteDevInfCallback callback, - void *userdata) +void +smlDataSyncRegisterHandleRemoteDevInfCallback (SmlDataSyncObject *dsObject, + SmlDataSyncHandleRemoteDevInfCallback callback, + void *userdata) { smlTrace(TRACE_ENTRY, "%s", __func__); smlAssert(dsObject); @@ -536,7 +537,9 @@ /* init session */ /* ***************************** */ -SmlBool smlDataSyncInit(SmlDataSyncObject *dsObject, SmlError **error) +gboolean +smlDataSyncInit (SmlDataSyncObject *dsObject, + GError **error) { smlTrace(TRACE_ENTRY, "%s", __func__); CHECK_ERROR_REF @@ -558,11 +561,12 @@ smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } -SmlBool smlDataSyncRun(SmlDataSyncObject *dsObject, SmlError **error) +gboolean +smlDataSyncRun(SmlDataSyncObject *dsObject, GError **error) { smlTrace(TRACE_ENTRY, "%s", __func__); CHECK_ERROR_REF @@ -584,21 +588,21 @@ smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } /* synchronize */ -SmlBool smlDataSyncAddChange( - SmlDataSyncObject *dsObject, - const char *source, - SmlChangeType type, - const char *name, - const char *data, - unsigned int size, - void *userdata, /* for SmlDataSyncChangeStatusCallback */ - SmlError **error) +gboolean +smlDataSyncAddChange (SmlDataSyncObject *dsObject, + const gchar *source, + SmlChangeType type, + const gchar *name, + const gchar *data, + gsize size, + void *userdata, /* for SmlDataSyncChangeStatusCallback */ + GError **error) { smlTrace(TRACE_ENTRY, "%s(%s)", __func__, VA_STRING(source)); @@ -644,7 +648,7 @@ /* binary data must be base64 encoded */ change->data = g_base64_encode((const unsigned char *) data, size); if (!change->data) { - smlErrorSet(error, SML_ERROR_GENERIC, + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "The base 64 encoding of glib failed."); goto error; } @@ -667,11 +671,13 @@ smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } -SmlBool smlDataSyncSendChanges(SmlDataSyncObject *dsObject, SmlError **error) +gboolean +smlDataSyncSendChanges (SmlDataSyncObject *dsObject, + GError **error) { /* This means that all alerts were received * and all changes were added. @@ -683,7 +689,7 @@ if (dsObject->internalState >= SML_DATA_SYNC_STATE_SENT_CHANGES) { - smlErrorSet(error, SML_ERROR_GENERIC, + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "The function %s is called to late or more than once.", __func__); goto error; } else { @@ -692,7 +698,7 @@ if (dsObject->dsType == SML_SESSION_TYPE_SERVER && dsObject->actualPackage != SML_PACKAGE_4) { - smlErrorSet(error, SML_ERROR_GENERIC, + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "This is not the server's sync package (%d).", dsObject->actualPackage); goto error; @@ -700,7 +706,7 @@ if (dsObject->dsType == SML_SESSION_TYPE_CLIENT && dsObject->actualPackage != SML_PACKAGE_3) { - smlErrorSet(error, SML_ERROR_GENERIC, + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "This is not the client's sync package (%d).", dsObject->actualPackage); goto error; @@ -750,16 +756,16 @@ smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } -SmlBool smlDataSyncAddMapping( - SmlDataSyncObject *dsObject, - const char *source, - const char *remoteID, - const char *localID, - SmlError **error) +gboolean +smlDataSyncAddMapping (SmlDataSyncObject *dsObject, + const gchar *source, + const gchar *remoteID, + const gchar *localID, + GError **error) { smlTrace(TRACE_ENTRY, "%s(%s)", __func__, VA_STRING(source)); @@ -785,11 +791,13 @@ smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } -SmlBool smlDataSyncSendMap(SmlDataSyncObject *dsObject, SmlError **error) +gboolean +smlDataSyncSendMap (SmlDataSyncObject *dsObject, + GError **error) { smlTrace(TRACE_ENTRY, "%s", __func__); CHECK_ERROR_REF @@ -799,13 +807,13 @@ if (dsObject->dsType == SML_SESSION_TYPE_SERVER) { - smlErrorSet(error, SML_ERROR_GENERIC, "An OMA DS server never sends a map."); + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "An OMA DS server never sends a map."); goto error; } if (dsObject->dsType == SML_SESSION_TYPE_CLIENT && dsObject->actualPackage != SML_PACKAGE_5) { - smlErrorSet(error, SML_ERROR_GENERIC, "Missing server's sync package."); + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "Missing server's sync package."); goto error; } @@ -824,14 +832,14 @@ smlTrace(TRACE_EXIT, "%s - TRUE", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } -const SmlLocation *smlDataSyncGetTarget( - SmlDataSyncObject *dsObject, - SmlError **error) +const SmlLocation* +smlDataSyncGetTarget (SmlDataSyncObject *dsObject, + GError **error) { smlTrace(TRACE_INTERNAL, "%s(%p, %p)", __func__, dsObject, error); smlAssert(dsObject); @@ -859,22 +867,23 @@ /* cleanup transport */ if ((*dsObject)->tsp) { - SmlError *error = NULL; + GError *error = NULL; if ((*dsObject)->dsType == SML_SESSION_TYPE_CLIENT && SML_DATA_SYNC_STATE_CONNECTED >= (*dsObject)->internalState && (*dsObject)->internalState <= SML_DATA_SYNC_STATE_DISCONNECTED && !smlTransportDisconnect((*dsObject)->tsp, NULL, &error)) { /* just ignore the error */ smlTrace(TRACE_ERROR, "%s: %s", - __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + __func__, error->message); + g_error_free(error); } /* FIXME: we have to wait here for the disconnect ... */ if ((*dsObject)->internalState >= SML_DATA_SYNC_STATE_INITIALIZED && !smlTransportFinalize((*dsObject)->tsp, &error)) { smlTrace(TRACE_ERROR, "%s: %s", - __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + __func__, error->message); + g_error_free(error); + error = NULL; } smlTransportFree((*dsObject)->tsp); } @@ -957,11 +966,11 @@ /* internal functions */ -void smlDataSyncSendEvent( - SmlDataSyncObject *dsObject, - SmlDataSyncEventType type, - void *userdata, - SmlError *error) +void +smlDataSyncSendEvent (SmlDataSyncObject *dsObject, + SmlDataSyncEventType type, + void *userdata, + const GError *error) { /* this functionworks synchronous today */ smlAssert(dsObject); Modified: trunk/libsyncml/data_sync_api/data_sync.h ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync.h Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync.h Tue Jul 7 16:47:34 2009 (r1154) @@ -37,18 +37,18 @@ /* typedef for internal function pointers */ -typedef SmlBool (* SmlFunctionDataSyncInit) ( +typedef gboolean (* SmlFunctionDataSyncInit) ( SmlDataSyncObject *dsObject, - SmlError **error); -typedef SmlBool (* SmlFunctionDataSyncConnect) ( + GError **error); +typedef gboolean (* SmlFunctionDataSyncConnect) ( SmlDataSyncObject *dsObject, - SmlError **error); -typedef SmlBool (* SmlFunctionTransportInit) ( + GError **error); +typedef gboolean (* SmlFunctionTransportInit) ( SmlDataSyncObject *dsObject, - SmlError **error); -typedef SmlBool (* SmlFunctionTransportConnect) ( + GError **error); +typedef gboolean (* SmlFunctionTransportConnect) ( SmlDataSyncObject *dsObject, - SmlError **error); + GError **error); /*! @brief This is the internal representation of the OMA DS packages. * OMA DS specifications define packages which can consist @@ -94,13 +94,13 @@ SmlDataSyncObject *dsObject; void *syncChanges; void *syncContexts; - char *sourceUri; - char *targetUri; - char *contentType; + gchar *sourceUri; + gchar *targetUri; + gchar *contentType; SmlDsServer *server; SmlDsSession *session; - char *localNext; - char *remoteNext; + gchar *localNext; + gchar *remoteNext; SmlAlertType alertType; GList *changes; } SmlDataSyncDatastore; @@ -133,33 +133,33 @@ GList *datastores; - SmlBool useNumberOfChanges; - SmlBool useTimestampAnchor; - SmlBool onlyLocaltime; - SmlBool onlyReplace; - SmlBool useStringTable; - SmlBool useWbxml; - unsigned int maxObjSize; - unsigned int maxMsgSize; - char *identifier; + gboolean useNumberOfChanges; + gboolean useTimestampAnchor; + gboolean onlyLocaltime; + gboolean onlyReplace; + gboolean useStringTable; + gboolean useWbxml; + gsize maxObjSize; + gsize maxMsgSize; + gchar *identifier; SmlAuthType authType; - char *username; - char *password; + gchar *username; + gchar *password; - char *url; - char *target; + gchar *url; + gchar *target; SmlProtocolVersion version; - char *fakeDevice; - char *fakeManufacturer; - char *fakeModel; - char *fakeSoftwareVersion; + gchar *fakeDevice; + gchar *fakeManufacturer; + gchar *fakeModel; + gchar *fakeSoftwareVersion; /* states */ SmlDataSyncInternalStateType internalState; - int refCount; + gint refCount; SmlDataSyncPackageType actualPackage; /* callbacks */ @@ -207,9 +207,9 @@ typedef struct SmlDataSyncChange { SmlDataSyncDatastore *datastore; SmlChangeType type; - char *name; - char *data; - unsigned int size; + gchar *name; + gchar *data; + gsize size; void *userdata; } SmlDataSyncChange; @@ -217,10 +217,10 @@ SmlDataSyncObject *dsObject, SmlDataSyncEventType type, void *userdata, - SmlError *error); + const GError *error); -SmlBool smlDataSyncSendMap( +gboolean smlDataSyncSendMap( SmlDataSyncObject *dsObject, - SmlError **error); + GError **error); #endif /* _SML_DATA_SYNC_INTERNALS_H_ */ Modified: trunk/libsyncml/data_sync_api/data_sync_abort.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_abort.c Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_abort.c Tue Jul 7 16:47:34 2009 (r1154) @@ -38,9 +38,9 @@ #include "../sml_session_internals.h" #include "../sml_manager_internals.h" -SmlBool smlDataSyncAbort( - SmlDataSyncObject *dsObject, - SmlError **error) +gboolean +smlDataSyncAbort (SmlDataSyncObject *dsObject, + GError **error) { smlTrace(TRACE_ENTRY, "%s", __func__); @@ -80,7 +80,7 @@ smlTrace(TRACE_EXIT, "%s", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } Modified: trunk/libsyncml/data_sync_api/data_sync_callbacks.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_callbacks.c Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_callbacks.c Tue Jul 7 16:47:34 2009 (r1154) @@ -44,7 +44,7 @@ SmlManager *manager, SmlManagerEventType type, SmlSession *session, - SmlError *error, + GError *error, void *userdata) { smlTrace(TRACE_ENTRY, "%s(%p, %i, %p, %p, %p)", __func__, manager, type, session, error, userdata); @@ -121,12 +121,12 @@ case SML_MANAGER_TRANSPORT_ERROR: smlTrace(TRACE_INTERNAL, "There was an error in the transport: %s", - smlErrorPrint(&error)); + error->message); if (SML_DATA_SYNC_STATE_CONNECTED <= dsObject->internalState && dsObject->internalState < SML_DATA_SYNC_STATE_DISCONNECTED) { if (dsObject->internalState < SML_DATA_SYNC_STATE_DISCONNECT_IN_PROGRESS) { dsObject->internalState = SML_DATA_SYNC_STATE_DISCONNECT_IN_PROGRESS; - SmlError *locerror = NULL; + GError *locerror = NULL; SmlLink *link_ = smlManagerSessionGetLink( dsObject->manager, dsObject->session, @@ -142,7 +142,7 @@ * So locerror can be ignored. */ if (locerror) - smlErrorDeref(&locerror); + g_error_free(locerror); /* It is not a good idea to wait for the * disconnect here. First this is an * asynchronous software so it is always @@ -168,12 +168,12 @@ goto error; break; case SML_MANAGER_SESSION_NEW: - smlTrace(TRACE_INTERNAL, "%s: Just received a new session with ID %s", - __func__, VA_STRING(smlSessionGetSessionID(session))); + smlTrace(TRACE_INTERNAL, "%s: Just received a new session with ID %d.", + __func__, smlSessionGetSessionID(session)); if (dsObject->session) { smlTrace(TRACE_INTERNAL, - "%s: WARNING: There was an old session %s in the environment.", - __func__, VA_STRING(smlSessionGetSessionID(dsObject->session))); + "%s: WARNING: There was an old session %d in the environment.", + __func__, smlSessionGetSessionID(dsObject->session)); smlSessionUnref(dsObject->session); dsObject->session = NULL; } @@ -203,8 +203,8 @@ break; case SML_MANAGER_SESSION_FINAL: - smlTrace(TRACE_INTERNAL, "%s: Session %s reported final", - __func__, VA_STRING(smlSessionGetSessionID(session))); + smlTrace(TRACE_INTERNAL, "%s: Session %d reported final.", + __func__, smlSessionGetSessionID(session)); /* determine which package was received */ @@ -285,15 +285,15 @@ /* auto disconnect by library */ break; default: - smlErrorSet(&error, SML_ERROR_NOT_IMPLEMENTED, + g_set_error(&error, SML_ERROR, SML_ERROR_NOT_IMPLEMENTED, "The package %d is actually not supported.", dsObject->actualPackage); goto error; } break; case SML_MANAGER_SESSION_END: - smlTrace(TRACE_INTERNAL, "%s: Session %s has ended", - __func__, VA_STRING(smlSessionGetSessionID(session))); + smlTrace(TRACE_INTERNAL, "%s: Session %d has ended", + __func__, smlSessionGetSessionID(session)); SmlLink *link_ = smlManagerSessionGetLink( dsObject->manager, dsObject->session, @@ -319,18 +319,19 @@ case SML_MANAGER_SESSION_ERROR: if (session) smlTrace(TRACE_INTERNAL, - "There was an error in the session %s: %s", - VA_STRING(smlSessionGetSessionID(session)), - smlErrorPrint(&error)); + "%s: There was an error in the session %d: %s", + __func__, + smlSessionGetSessionID(session), + error->message); else smlTrace(TRACE_INTERNAL, "There was a general error in the manager. %s", - smlErrorPrint(&error)); + error->message); goto error; break; case SML_MANAGER_SESSION_WARNING: - g_warning("WARNING: %s\n", smlErrorPrint(&error)); + g_warning("WARNING: %s\n", error->message); break; default: g_warning("%s: Unknown event received: %d.", __func__, type); @@ -340,13 +341,13 @@ g_mutex_unlock(dsObject->managerMutex); smlTrace(TRACE_EXIT, "%s", __func__); return; - error: g_mutex_unlock(dsObject->managerMutex); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); smlDataSyncSendEvent( dsObject, SML_DATA_SYNC_EVENT_ERROR, dsObject->eventUserdata, error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); } /* *************************************** */ @@ -396,10 +397,11 @@ #if 0 /* UNUSED */ error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); smlDataSyncSendEvent( dsObject, SML_DATA_SYNC_EVENT_ERROR, dsObject->eventUserdata, error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); #endif /* UNUSED */ } @@ -429,15 +431,14 @@ if (code >= 300 && code != SML_ERROR_REQUIRE_REFRESH) { /* This is an error. */ - SmlError *error = NULL; - smlErrorSet(&error, SML_ERROR_GENERIC, + GError *error = NULL; + g_set_error(&error, SML_ERROR, code, "The alert response signals an error - %d.", code); - smlErrorRef(&error); smlDataSyncSendEvent( datastore->dsObject, SML_DATA_SYNC_EVENT_ERROR, datastore->dsObject->eventUserdata, error); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); } else { smlTrace(TRACE_EXIT, "%s", __func__); } @@ -449,12 +450,12 @@ void smlDataSyncSyncCallback( SmlDsSession *dsession, - unsigned int numchanges, + gsize numchanges, void *userdata) { smlTrace(TRACE_ENTRY, "%s(%p, %i, %p)", __func__, dsession, numchanges, userdata); SmlDataSyncDatastore *datastore = userdata; - SmlError *error = NULL; + GError *error = NULL; /* If the device information was not sent together with the * alerts and it was not cached then the device information @@ -467,10 +468,11 @@ smlTrace(TRACE_EXIT, "%s", __func__); return; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); smlDataSyncSendEvent( datastore->dsObject, SML_DATA_SYNC_EVENT_ERROR, datastore->dsObject->eventUserdata, error); + g_error_free(error); } void smlDataSyncSyncStatusCallback( @@ -515,16 +517,15 @@ // smlManagerStop(database->env->manager); // smlManagerQuit(database->env->manager); // printf(" Manager finished.\n"); - SmlError *error = NULL; - smlErrorSet(&error, smlStatusGetCode(status), + GError *error = NULL; + g_set_error(&error, SML_ERROR, smlStatusGetCode(status), "Sync failed with error %d.", smlStatusGetCode(status)); - smlErrorRef(&error); smlDataSyncSendEvent( datastore->dsObject, SML_DATA_SYNC_EVENT_ERROR, datastore->dsObject->eventUserdata, error); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); } else { smlTrace(TRACE_EXIT, "%s", __func__); } @@ -534,15 +535,15 @@ /* ***** Change Callbacks ***** */ /* ************************************ */ -SmlBool smlDataSyncChangeCallback( +gboolean smlDataSyncChangeCallback( SmlDsSession *dsession, SmlChangeType type, - const char *uid, - char *data, - unsigned int size, - const char *contenttype, + const gchar *uid, + gchar *data, + gsize size, + const gchar *contenttype, void *userdata, - SmlError **error) + GError **error) { smlTrace(TRACE_ENTRY, "%s(%p, %i, %s, %p, %i, %s, %p, %p)", __func__, dsession, type, VA_STRING(uid), data, size, VA_STRING(contenttype), userdata, error); CHECK_ERROR_REF @@ -580,7 +581,7 @@ size = length; smlSafeCFree(&b64data); if (!data) { - smlErrorSet(error, SML_ERROR_GENERIC, + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "The base 64 decoding of glib failed."); goto error; } @@ -599,18 +600,17 @@ smlTrace(TRACE_EXIT, "%s", __func__); return TRUE; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } void smlDataSyncChangeStatusCallback( SmlDsSession *dsession, SmlStatus *status, - const char *newuid, void *userdata) { - smlTrace(TRACE_ENTRY, "%s(%p, %p, %s, %p)", __func__, dsession, status, VA_STRING(newuid), userdata); - SmlError *error = NULL; + smlTrace(TRACE_ENTRY, "%s(%p, %p, %s, %p)", __func__, dsession, status, userdata); + GError *error = NULL; smlAssert(userdata); SmlDataSyncChange *change = userdata; @@ -622,19 +622,17 @@ !dsObject->changeStatusCallback( dsObject, smlStatusGetCode(status), - newuid, change->userdata, &error)) goto error; smlTrace(TRACE_EXIT, "%s", __func__); return; error: - smlErrorRef(&error); smlDataSyncSendEvent( dsObject, SML_DATA_SYNC_EVENT_ERROR, dsObject->eventUserdata, error); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); } void smlDataSyncMappingCallback( @@ -645,7 +643,7 @@ { smlTrace(TRACE_ENTRY, "%s(%p, %s, %s, %p)", __func__, dsession, VA_STRING(sml_location_get_uri(orig)), VA_STRING(sml_location_get_uri(newuid)), userdata); - SmlError *error = NULL; + GError *error = NULL; SmlDataSyncDatastore *datastore = userdata; smlAssert(datastore); @@ -664,12 +662,11 @@ smlTrace(TRACE_EXIT, "%s", __func__); return; error: - smlErrorRef(&error); smlDataSyncSendEvent( datastore->dsObject, SML_DATA_SYNC_EVENT_ERROR, datastore->dsObject->eventUserdata, error); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); } /* ********************************* */ @@ -685,13 +682,14 @@ if (smlStatusGetClass(status) != SML_ERRORCLASS_SUCCESS) { SmlDataSyncDatastore *datastore = userdata; - SmlError *error = NULL; - smlErrorSet(&error, smlStatusGetCode(status), + GError *error = NULL; + g_set_error(&error, SML_ERROR, smlStatusGetCode(status), "Map of datastore %s was rejected with error code %d", datastore->sourceUri, smlStatusGetCode(status)); smlDataSyncSendEvent( datastore->dsObject, SML_DATA_SYNC_EVENT_ERROR, datastore->dsObject->eventUserdata, error); + g_error_free(error); } smlTrace(TRACE_EXIT, "%s", __func__); } @@ -700,12 +698,12 @@ /* ***** Authentication Callback ***** */ /* ******************************************* */ -SmlBool smlDataSyncVerifyUserCallback( +gboolean smlDataSyncVerifyUserCallback( SmlChal *chal, SmlCred *cred, - const char *username, + const gchar *username, void *userdata, - SmlError **error) + GError **error) { smlTrace(TRACE_ENTRY, "%s(%p, %p, %s, %p)", __func__, chal, cred, VA_STRING(username), userdata); CHECK_ERROR_REF Modified: trunk/libsyncml/data_sync_api/data_sync_callbacks.h ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_callbacks.h Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_callbacks.h Tue Jul 7 16:47:34 2009 (r1154) @@ -31,7 +31,7 @@ SmlManager *manager, SmlManagerEventType type, SmlSession *session, - SmlError *error, + GError *error, void *userdata); /* *************************************** */ @@ -61,7 +61,7 @@ void smlDataSyncSyncCallback( SmlDsSession *dsession, - unsigned int numchanges, + gsize numchanges, void *userdata); void smlDataSyncSyncStatusCallback( @@ -73,20 +73,19 @@ /* ***** Change Callbacks ***** */ /* ************************************ */ -SmlBool smlDataSyncChangeCallback( +gboolean smlDataSyncChangeCallback( SmlDsSession *dsession, SmlChangeType type, - const char *uid, - char *data, - unsigned int size, - const char *contenttype, + const gchar *uid, + gchar *data, + gsize size, + const gchar *contenttype, void *userdata, - SmlError **smlerror); + GError **error); void smlDataSyncChangeStatusCallback( SmlDsSession *dsession, SmlStatus *status, - const char *newuid, void *userdata); void smlDataSyncMappingCallback( @@ -108,11 +107,11 @@ /* ***** Authentication Callback ***** */ /* ******************************************* */ -SmlBool smlDataSyncVerifyUserCallback( +gboolean smlDataSyncVerifyUserCallback( SmlChal *chal, SmlCred *cred, - const char *username, + const gchar *username, void *userdata, - SmlError **error); + GError **error); #endif /* _SML_DATA_SYNC_CALLBACKS_H */ Modified: trunk/libsyncml/data_sync_api/data_sync_client.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_client.c Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_client.c Tue Jul 7 16:47:34 2009 (r1154) @@ -26,20 +26,19 @@ #include "data_sync_devinf.h" #include "libsyncml/sml_support.h" -static SmlBool smlDataSyncClientAlertCallback( - SmlDsSession *dsession, - SmlAlertType type, - const char *last, - const char *next, - void *userdata) +static gboolean +smlDataSyncClientAlertCallback (SmlDsSession *dsession, + SmlAlertType type, + const gchar *last, + const gchar *next, + void *userdata) { smlTrace(TRACE_ENTRY, "%s(%p, %i, %s, %s, %p)", __func__, dsession, type, VA_STRING(last), VA_STRING(next), userdata); SmlDataSyncDatastore *datastore = userdata; SmlDataSyncObject *dsObject = datastore->dsObject; - SmlBool ret = TRUE; - SmlError *error = NULL; - GError *gerror = NULL; + gboolean ret = TRUE; + GError *error = NULL; /* libsyncml only supports SML_ALERT_TWO_WAY and SML_ALERT_SLOW_SYNC * but some old phones reply on a SAN alert 206 with a slow sync 201 @@ -51,7 +50,8 @@ type != SML_ALERT_SLOW_SYNC && type != SML_ALERT_TWO_WAY_BY_SERVER) { - smlErrorSet(&error, SML_ERROR_NOT_IMPLEMENTED, "Unsupported alert type %d.", type); + g_set_error(&error, SML_ERROR, SML_ERROR_NOT_IMPLEMENTED, + "Unsupported alert type %d.", type); goto error; } @@ -113,7 +113,7 @@ */ if (h != type) { if (h != SML_ALERT_SLOW_SYNC) { - smlErrorSet(&error, SML_ERROR_GENERIC, + g_set_error(&error, SML_ERROR, SML_ERROR_GENERIC, "It is not possible to change the alert type after an OMA DS client received the alerts from the OMA DS server."); goto error; } else { @@ -121,10 +121,11 @@ SmlLocation *source = NULL; source = sml_location_new(); if (!source) { - g_set_error(&gerror, SML_ERROR, SML_ERROR_GENERIC, "Cannot create new SmlLocation object - out of memory."); + g_set_error(&error, SML_ERROR, SML_ERROR_GENERIC, + "Cannot create new SmlLocation object - out of memory."); goto error; } - if (!sml_location_set_uri(source, datastore->sourceUri, &gerror)) { + if (!sml_location_set_uri(source, datastore->sourceUri, &error)) { g_object_unref(source); goto error; } @@ -157,23 +158,18 @@ smlTrace(TRACE_EXIT, "%s: %i", __func__, ret); return ret; error: - if (gerror) { - smlErrorSet(&error, gerror->code, "%s", gerror->message); - g_error_free(gerror); - } - smlErrorRef(&error); smlDataSyncSendEvent( dsObject, SML_DATA_SYNC_EVENT_ERROR, dsObject->eventUserdata, error); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); return FALSE; } -SmlBool smlDataSyncClientSendAlert( - SmlDataSyncDatastore *datastore, - SmlAlertType type, - SmlError **error) +gboolean +smlDataSyncClientSendAlert (SmlDataSyncDatastore *datastore, + SmlAlertType type, + GError **error) { smlTrace(TRACE_ENTRY, "%s(%p, %d, %p)", __func__, datastore, type, error); CHECK_ERROR_REF @@ -260,7 +256,7 @@ * This can happen if the remote peer did not trigger * the client via a SAN (e.g. OMA DS client over HTTP). */ - SmlBool ret = TRUE; + gboolean ret = TRUE; if (alertType == SML_ALERT_SLOW_SYNC && alertType != type && type != SML_ALERT_UNKNOWN) { @@ -270,7 +266,7 @@ smlTrace(TRACE_EXIT, "%s: %i", __func__, ret); return ret; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } @@ -283,7 +279,7 @@ smlTrace(TRACE_ENTRY, "%s(%p, %p, %d, %p)", __func__, server, session, type, userdata); SmlDataSyncDatastore *datastore = userdata; SmlDataSyncObject *dsObject = datastore->dsObject; - SmlError *error = NULL; + GError *error = NULL; SmlErrorType ret = SML_NO_ERROR; /* soemtimes the event manager thread is too slow */ @@ -302,20 +298,20 @@ smlTrace(TRACE_EXIT, "%s: %i", __func__, ret); return ret; error: - smlErrorRef(&error); smlDataSyncSendEvent( dsObject, SML_DATA_SYNC_EVENT_ERROR, dsObject->eventUserdata, error); - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(&error)); - smlErrorDeref(&error); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, error->message); + g_error_free(error); return SML_ERROR_GENERIC; } -SmlBool smlDataSyncClientInit(SmlDataSyncObject *dsObject, SmlError **error) +gboolean +smlDataSyncClientInit (SmlDataSyncObject *dsObject, + GError **error) { smlTrace(TRACE_ENTRY, "%s(%p, %p)", __func__, dsObject, error); CHECK_ERROR_REF - GError *gerror = NULL; /* The manager responsible for handling the other objects */ dsObject->manager = smlManagerNew(dsObject->tsp, error); @@ -341,10 +337,10 @@ /* We now create the ds server at the given location. */ SmlLocation *loc = sml_location_new(); if (!loc) { - g_set_error(&gerror, SML_ERROR, SML_ERROR_GENERIC, "Cannot create new SmlLocation object - out of memory."); + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "Cannot create new SmlLocation object - out of memory."); goto error; } - if (!sml_location_set_uri(loc, datastore->sourceUri, &gerror)) + if (!sml_location_set_uri(loc, datastore->sourceUri, error)) goto error; datastore->server = smlDsClientNew(datastore->contentType, loc, loc, error); @@ -385,11 +381,7 @@ return TRUE; error: - if (gerror) { - smlErrorSet(error, gerror->code, "%s", gerror->message); - g_error_free(gerror); - } - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return FALSE; } Modified: trunk/libsyncml/data_sync_api/data_sync_client.h ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_client.h Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_client.h Tue Jul 7 16:47:34 2009 (r1154) @@ -23,13 +23,13 @@ #include "data_sync.h" -SmlBool smlDataSyncClientInit( +gboolean smlDataSyncClientInit( SmlDataSyncObject *dsObject, - SmlError **error); + GError **error); -SmlBool smlDataSyncClientSendAlert( +gboolean smlDataSyncClientSendAlert( SmlDataSyncDatastore *datastore, SmlAlertType type, - SmlError **error); + GError **error); #endif /* _SML_DATA_SYNC_SERVER_H_ */ Modified: trunk/libsyncml/data_sync_api/data_sync_common.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_common.c Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_common.c Tue Jul 7 16:47:34 2009 (r1154) @@ -24,7 +24,9 @@ #include "data_sync_devinf.h" -SmlBool smlDataSyncIsTimestamp(const char *anchor, SmlBool timestampDefault) +gboolean +smlDataSyncIsTimestamp (const gchar *anchor, + gboolean timestampDefault) { smlTrace(TRACE_ENTRY, "%s(%s, %d)", __func__, VA_STRING(anchor), timestampDefault); if (anchor == NULL || strlen(anchor) < 1) @@ -46,14 +48,14 @@ } } -char *smlDataSyncGetNextAnchor( - SmlDataSyncDatastore *datastore, - const char *last, - SmlError **error) +gchar* +smlDataSyncGetNextAnchor (SmlDataSyncDatastore *datastore, + const gchar *last, + GError **error) { smlTrace(TRACE_ENTRY, "%s(%s)", __func__, VA_STRING(last)); CHECK_ERROR_REF - SmlBool use_timestamp = TRUE; + gboolean use_timestamp = TRUE; char *next = NULL; use_timestamp = smlDataSyncIsTimestamp(last, @@ -100,6 +102,6 @@ smlTrace(TRACE_EXIT, "%s(%s)", __func__, VA_STRING(next)); return next; error: - smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s - %s", __func__, (*error)->message); return NULL; } Modified: trunk/libsyncml/data_sync_api/data_sync_common.h ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_common.h Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_common.h Tue Jul 7 16:47:34 2009 (r1154) @@ -23,11 +23,11 @@ #include "data_sync.h" -SmlBool smlDataSyncIsTimestamp(const char *anchor, SmlBool timestampDefault); +gboolean smlDataSyncIsTimestamp(const gchar *anchor, gboolean timestampDefault); -char *smlDataSyncGetNextAnchor( +gchar *smlDataSyncGetNextAnchor( SmlDataSyncDatastore *datastore, - const char *last, - SmlError **error); + const gchar *last, + GError **error); #endif /* _SML_DATA_SYNC_COMMON_H_ */ Modified: trunk/libsyncml/data_sync_api/data_sync_devinf.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_devinf.c Sun Jul 5 13:04:42 2009 (r1153) +++ trunk/libsyncml/data_sync_api/data_sync_devinf.c Tue Jul 7 16:47:34 2009 (r1154) @@ -22,43 +22,39 @@ #include "libsyncml/syncml_internals.h" #include "libsyncml/sml_error_internals.h" -static SmlDevInfProperty *_add_ctcap_property_by_name( - SmlDevInfCTCap *ctcap, - const char *name, - SmlError **error) +static SmlDevInfProperty* +_add_ctcap_property_by_name (SmlDevInfCTCap *ctcap, + const gchar *name, + GError **error) { smlTrace(TRACE_ENTRY, "%s (%s)", __func__, VA_STRING(name)); CHECK_ERROR_REF smlAssert(ctcap); smlAssert(name); - GError *gerror = NULL; SmlDevInfProperty *prop = sml_dev_inf_property_new(); if (!prop) { - smlErrorSet(error, SML_ERROR_GENERIC, "Cannot create new instance of SmlDevInfProperty - out of memory."); + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, + "Cannot create new instance of SmlDevInfProperty - out of memory."); goto error; } - if (!sml_dev_inf_property_set_prop_name(prop, name, &gerror)) + if (!sml_dev_inf_property_set_prop_name(prop, name, error)) goto error; - if (!sml_dev_inf_ctcap_add_property(ctcap, prop, &gerror)) + if (!sml_dev_inf_ctcap_add_property(ctcap, prop, error)) goto error; smlTrace(TRACE_EXIT, "%s", __func__); return prop; error: - if (gerror) { - smlErrorSet(error, gerror->code, "%s", gerror->message); - g_error_free(gerror); - } - smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, (*error)->message); return NULL; } -static SmlDevInfProperty *_add_ctcap_property_by_name_value( - SmlDevInfCTCap *ctcap, - const char*name, - const char *value, - SmlError **error) +static SmlDevInfProperty* +_add_ctcap_property_by_name_value (SmlDevInfCTCap *ctcap, + const gchar* name, + const gchar *value, + GError **error) { smlTrace(TRACE_ENTRY, "%s (%s ::= %s)", __func__, VA_STRING(name), VA_STRING(value)); CHECK_ERROR_REF @@ -66,66 +62,57 @@ smlAssert(name); smlAssert(value); - GError *gerror = NULL; SmlDevInfProperty *prop = _add_ctcap_property_by_name(ctcap, name, error); if (!prop) goto error; - if (!sml_dev_inf_property_add_val_enum(prop, value, &gerror)) + if (!sml_dev_inf_property_add_val_enum(prop, value, error)) goto error; smlTrace(TRACE_EXIT, "%s", __func__); return prop; error: - if (gerror) { - smlErrorSet(error, gerror->code, "%s", gerror->message); - g_error_free(gerror); - } - smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, (*error)->message); return NULL; } -static SmlDevInfPropParam *_add_property_param( - SmlDevInfProperty *prop, - const char *name, - SmlError **error) +static SmlDevInfPropParam* +_add_property_param (SmlDevInfProperty *prop, + const gchar *name, + GError **error) { smlTrace(TRACE_ENTRY, "%s (%s)", __func__, VA_STRING(name)); CHECK_ERROR_REF smlAssert(prop); smlAssert(name); - GError *gerror = NULL; SmlDevInfPropParam *param = sml_dev_inf_prop_param_new(); if (!param) { - smlErrorSet(error, SML_ERROR_GENERIC, "Cannot create new PropParam for SyncML device information."); + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, + "Cannot create new PropParam for SyncML device information."); goto error; } - if (!sml_dev_inf_prop_param_set_param_name(param, name, &gerror)) + if (!sml_dev_inf_prop_param_set_param_name(param, name, error)) goto error; - if (!sml_dev_inf_property_add_param(prop, param, &gerror)) + if (!sml_dev_inf_property_add_param(prop, param, error)) goto error; smlTrace(TRACE_EXIT, "%s", __func__); return param; error: - if (gerror) { - smlErrorSet(error, gerror->code, "%s", gerror->message); - g_error_free(gerror); - } - smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, (*error)->message); return NULL; } #define _ADD_PROPERTY_VAL_ENUM(text) \ - if (!sml_dev_inf_property_add_val_enum(prop, text, &gerror)) \ + if (!sml_dev_inf_property_add_val_enum(prop, text, error)) \ goto error; #define _ADD_PROPERTY_PARAM(text) \ param = _add_property_param(prop, text, error); \ if (!param) \ goto error; #define _ADD_PROP_PARAM_VAL_ENUM(text) \ - if (!sml_dev_inf_prop_param_add_val_enum(param, text, &gerror)) \ + if (!sml_dev_inf_prop_param_add_val_enum(param, text, error)) \ goto error; #define _ADD_CTCAP_PROPERTY_BY_NAME(text) \ prop = _add_ctcap_property_by_name(ctcap, text, error); \ @@ -135,11 +122,11 @@ if (!_add_ctcap_property_by_name_value(ctcap, name, value, error)) \ goto error; -static SmlBool add_devinf_ctcap( - SmlDevInf *devinf, - const char* cttype, - const char *verct, - SmlError **error) +static gboolean +add_devinf_ctcap (SmlDevInf *devinf, + const gchar *cttype, + const gchar *verct, + GError **error) { smlTrace(TRACE_ENTRY, "%s (%s %s)", __func__, VA_STRING(cttype), VA_STRING(verct)); CHECK_ERROR_REF @@ -148,8 +135,7 @@ smlAssert(verct); // first we check for an already configure CTCap - GError *gerror = NULL; - SmlDevInfContentType *ct = sml_dev_inf_content_type_new(cttype, verct, &gerror); + SmlDevInfContentType *ct = sml_dev_inf_content_type_new(cttype, verct, error); if (!ct) { goto error; } @@ -172,10 +158,10 @@ { smlTrace(TRACE_INTERNAL, "%s: vCard 2.1 detected", __func__); - SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_VCARD, "2.1", &gerror); + SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_VCARD, "2.1", error); if (!ct) goto error; - ctcap = sml_dev_inf_ctcap_new(ct, &gerror); + ctcap = sml_dev_inf_ctcap_new(ct, error); g_object_unref(ct); if (!ctcap) goto error; @@ -282,7 +268,7 @@ _ADD_PROPERTY_PARAM("WORK"); _ADD_PROPERTY_PARAM("HOME"); _ADD_CTCAP_PROPERTY_BY_NAME_VALUE("VERSION", "2.1") - if (!sml_dev_inf_add_ctcap(devinf, ctcap, &gerror)) + if (!sml_dev_inf_add_ctcap(devinf, ctcap, error)) goto error; } else if (!strcmp(cttype, SML_ELEMENT_TEXT_VCARD_30) && @@ -292,10 +278,10 @@ // FIXME: this is in terms of vCard 3.0 a bug smlTrace(TRACE_INTERNAL, "%s: vCard 3.0 detected", __func__); - SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_VCARD_30, "3.0", &gerror); + SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_VCARD_30, "3.0", error); if (!ct) goto error; - ctcap = sml_dev_inf_ctcap_new(ct, &gerror); + ctcap = sml_dev_inf_ctcap_new(ct, error); g_object_unref(ct); if (!ctcap) goto error; @@ -327,7 +313,7 @@ _ADD_CTCAP_PROPERTY_BY_NAME("NOTE") _ADD_CTCAP_PROPERTY_BY_NAME("PHOTO") _ADD_PROPERTY_PARAM("TYPE") - if (!sml_dev_inf_add_ctcap(devinf, ctcap, &gerror)) + if (!sml_dev_inf_add_ctcap(devinf, ctcap, error)) goto error; } /* Oracle collaboration Suite uses the content type to distinguish */ @@ -340,10 +326,10 @@ { smlTrace(TRACE_INTERNAL, "%s: vCalendar 1.0 detected", __func__); - SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_VCAL, "1.0", &gerror); + SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_VCAL, "1.0", error); if (!ct) goto error; - ctcap = sml_dev_inf_ctcap_new(ct, &gerror); + ctcap = sml_dev_inf_ctcap_new(ct, error); g_object_unref(ct); if (!ctcap) goto error; @@ -385,7 +371,7 @@ _ADD_CTCAP_PROPERTY_BY_NAME("SUMMARY") _ADD_CTCAP_PROPERTY_BY_NAME("UID") _ADD_CTCAP_PROPERTY_BY_NAME_VALUE("VERSION", "1.0") - if (!sml_dev_inf_add_ctcap(devinf, ctcap, &gerror)) + if (!sml_dev_inf_add_ctcap(devinf, ctcap, error)) goto error; } else if (!strcmp(cttype, SML_ELEMENT_TEXT_ICAL) && @@ -396,10 +382,10 @@ // FIXME: this is a bug in terms of iCal smlTrace(TRACE_INTERNAL, "%s: iCalendar (vCalendar 2.0) detected", __func__); - SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_ICAL, "2.0", &gerror); + SmlDevInfContentType *ct = sml_dev_inf_content_type_new(SML_ELEMENT_TEXT_ICAL, "2.0", error); if (!ct) goto error; - ctcap = sml_dev_inf_ctcap_new(ct, &gerror); + ctcap = sml_dev_inf_ctcap_new(ct, error); g_object_unref(ct); if (!ctcap) goto error; @@ -440,7 +426,7 @@ _ADD_CTCAP_PROPERTY_BY_NAME("SUMMARY") _ADD_CTCAP_PROPERTY_BY_NAME("UID") _ADD_CTCAP_PROPERTY_BY_NAME_VALUE("VERSION", "2.0") - if (!sml_dev_inf_add_ctcap(devinf, ctcap, &gerror)) + if (!sml_dev_inf_add_ctcap(devinf, ctcap, error)) goto error; } else @@ -448,26 +434,22 @@ /* trace the missing stuff and create a minimal CTCap */ smlTrace(TRACE_INTERNAL, "%s: unknown content type - %s %s", __func__, VA_STRING(cttype), VA_STRING(verct)); - SmlDevInfContentType *ct = sml_dev_inf_content_type_new(cttype, verct, &gerror); + SmlDevInfContentType *ct = sml_dev_inf_content_type_new(cttype, verct, error); if (!ct) goto error; - ctcap = sml_dev_inf_ctcap_new(ct, &gerror); + ctcap = sml_dev_inf_ctcap_new(ct, error); g_object_unref(ct); if (!ctcap) goto error; - if (!sml_dev_inf_add_ctcap(devinf, ctcap, &gerror)) + if (!sml_dev_inf_add_ctcap(devinf, ctcap, error)) goto error; } smlTrace(TRACE_EXIT, "%s - content type newly added to devinf", __func__); return TRUE; error: - if (gerror) { - smlErrorSet(error, gerror->code, "%s", gerror->message); - g_error_free(gerror); - } - smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, smlErrorPrint(error)); + smlTrace(TRACE_EXIT_ERROR, "%s: %s", __func__, (*error)->message); return FALSE; } @@ -495,54 +477,53 @@ /* here start the internal API functions */ #define _ADD_DATASTORE_RX(cttype,verct) \ - ctype = sml_dev_inf_content_type_new(cttype, verct, &gerror); \ + ctype = sml_dev_inf_content_type_new(cttype, verct, error); \ if (!ctype) \ goto error; \ - if (!sml_dev_inf_data_store_add_rx(ds, ctype, &gerror)) \ + if (!sml_dev_inf_data_store_add_rx(ds, ctype, error)) \ goto error; \ g_object_unref(ctype); \ ctype = NULL; #define _ADD_DATASTORE_TX(cttype,verct) \ - ctype = sml_dev_inf_content_type_new(cttype, verct, &gerror); \ + ctype = sml_dev_inf_content_type_new(cttype, verct, error); \ if (!ctype) \ goto error; \ - if (!sml_dev_inf_data_store_add_tx(ds, ctype, &gerror)) \ + if (!sml_dev_inf_data_store_add_tx(ds, ctype, error)) \ goto error; \ g_object_unref(ctype); \ ctype = NULL; #define _SET_DATASTORE_RX_PREF(cttype,verct) \ - ctype = sml_dev_inf_content_type_new(cttype, verct, &gerror); \ + ctype = sml_dev_inf_content_type_new(cttype, verct, error); \ if (!ctype) \ goto error; \ - if (!sml_dev_inf_data_store_set_rx_pref(ds, ctype, &gerror)) \ + if (!sml_dev_inf_data_store_set_rx_pref(ds, ctype, error)) \ goto error; \ g_object_unref(ctype); \ ctype = NULL; #define _SET_DATASTORE_TX_PREF(cttype,verct) \ - ctype = sml_dev_inf_content_type_new(cttype, verct, &gerror); \ + ctype = sml_dev_inf_content_type_new(cttype, verct, error); \ if (!ctype) \ goto error; \ - if (!sml_dev_inf_data_store_set_tx_pref(ds, ctype, &gerror)) \ + if (!sml_dev_inf_data_store_set_tx_pref(ds, ctype, error)) \ goto error; \ g_object_unref(ctype); \ ctype = NULL; -SmlBool smlDataSyncDevInfAddDatastore( - SmlDevInf *devinf, - SmlDataSyncDatastore *datastore, - SmlError **error) +gboolean +smlDataSyncDevInfAddDatastore (SmlDevInf *devinf, + SmlDataSyncDatastore *datastore, + GError **error) { smlTrace(TRACE_ENTRY, "%s (%p, %p)", __func__, devinf, datastore); CHECK_ERROR_REF smlAssert(datastore); smlAssert(datastore->contentType); smlAssert(datastore->sourceUri); - GError *gerror = NULL; - SmlDevInfDataStore *ds = sml_dev_inf_data_store_new(datastore->sourceUri, &gerror); + SmlDevInfDataStore *ds = sml_dev_inf_data_store_new(datastore->sourceUri, error); if (!ds) goto error; @@ -631,23 +612,19 @@ sml_dev_inf_data_store_set_sync_cap(ds, SML_DEVINF_SYNCTYPE_SERVER_ALERTED_SYNC, TRUE); } - if (!sml_dev_inf_add_data_store(devinf, ds, &gerror)) + if (!sml_dev_inf_add_data_store(devinf, ds, error)) goto error; smlTrace(TRAC... [truncated message content] |