From: <svn...@op...> - 2009-05-31 21:40:04
|
Author: dgollub Date: Sun May 31 23:39:57 2009 New Revision: 5657 URL: http://www.opensync.org/changeset/5657 Log: Splitted osync_capabilitiesobjtype_new() into osync_capabilitiesobjtype_new() and osync_capabilitiesobjtype_new_node(). Later one is for internal use only, parsing the XML document. First one is for assembling capabilities from plugin space. refs #1084 Modified: branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.c branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.h branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities_private.h Modified: branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.c ============================================================================== --- branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.c Sun May 31 23:30:32 2009 (r5656) +++ branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.c Sun May 31 23:39:57 2009 (r5657) @@ -32,7 +32,26 @@ #include "opensync_capabilities_private.h" -OSyncCapabilitiesObjType *osync_capabilitiesobjtype_new(OSyncCapabilities *capabilities, xmlNode *node, OSyncError **error) +OSyncCapabilitiesObjType *osync_capabilitiesobjtype_new(OSyncCapabilities *capabilities, const char *objtype, OSyncError **error) +{ + OSyncCapabilitiesObjType *capobjtype = NULL; + osync_assert(capabilities); + osync_assert(objtype); + + capobjtype = osync_try_malloc0(sizeof(OSyncCapabilitiesObjType), error); + if (!capobjtype) + goto error; + + capobjtype->name = osync_strdup(objtype); + + return capobjtype; + +error: + osync_trace(TRACE_EXIT_ERROR, "%s: %s" , __func__, osync_error_print(error)); + return NULL; +} + +OSyncCapabilitiesObjType *osync_capabilitiesobjtype_new_node(OSyncCapabilities *capabilities, xmlNode *node, OSyncError **error) { xmlChar *objtype; OSyncCapabilitiesObjType *capobjtype = NULL; @@ -42,26 +61,16 @@ osync_assert(!xmlStrcmp(node->name, (const xmlChar *)"ObjType")); objtype = xmlGetProp(node, (const xmlChar *)"Name"); - if (!objtype || *objtype == '\0') { - - if (objtype) - osync_xml_free(objtype); - - osync_error_set(error, OSYNC_ERROR_MISCONFIGURATION, "Capabilities Information is malformed. Object Type Name is missing."); + if (!(capobjtype = osync_capabilitiesobjtype_new(capabilities, BAD_CAST objtype, error))) goto error; - } - - capobjtype = osync_try_malloc0(sizeof(OSyncCapabilitiesObjType), error); - if (!capobjtype) - goto error; - - capobjtype->name = osync_strdup(objtype); osync_xml_free(objtype); return capobjtype; -error: +error: + osync_xml_free(objtype); + osync_trace(TRACE_EXIT_ERROR, "%s: %s" , __func__, osync_error_print(error)); return NULL; } @@ -155,7 +164,7 @@ cur = cur->children; for(; cur != NULL; cur = cur->next) { - OSyncCapabilitiesObjType *capabilitiesobjtype = osync_capabilitiesobjtype_new(capabilities, cur, error); + OSyncCapabilitiesObjType *capabilitiesobjtype = osync_capabilitiesobjtype_new_node(capabilities, cur, error); if (!capabilitiesobjtype) { osync_capabilities_unref(capabilities); goto error; Modified: branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.h ============================================================================== --- branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.h Sun May 31 23:30:32 2009 (r5656) +++ branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities.h Sun May 31 23:39:57 2009 (r5657) @@ -82,6 +82,9 @@ */ OSYNC_EXPORT osync_bool osync_capabilities_assemble(OSyncCapabilities *capabilities, char **buffer, int *size); + +OSYNC_EXPORT OSyncCapabilitiesObjType *osync_capabilitiesobjtype_new(OSyncCapabilities *capabilities, const char *objtype, OSyncError **error); + /*@}*/ #endif /*OPENSYNC_CAPABILITIES_H_*/ Modified: branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities_private.h ============================================================================== --- branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities_private.h Sun May 31 23:30:32 2009 (r5656) +++ branches/opensync-ticket1084/opensync/capabilities/opensync_capabilities_private.h Sun May 31 23:39:57 2009 (r5657) @@ -65,7 +65,7 @@ * @param error The error which will hold the info in case of an error * @return The pointer to the newly allocated capabilitiesobjtype object or NULL in case of error */ -OSyncCapabilitiesObjType *osync_capabilitiesobjtype_new(OSyncCapabilities *capabilities, xmlNode *node, OSyncError **error); +OSyncCapabilitiesObjType *osync_capabilitiesobjtype_new_node(OSyncCapabilities *capabilities, xmlNode *node, OSyncError **error); /** * @brief Get the first capabilitiesobjtype for a given objtype from the capabilities |