OSyncXMLField *osync_xmlfield_get_last_child(OSyncXMLField *xmlfield) { OSyncXMLField *last = NULL; osync_return_val_if_fail(xmlfield, NULL); osync_return_val_if_fail(xmlfield->child, NULL); last = xmlfield->child; while (last->next) last = last->next; return last; }
/*! @brief This will return a string describing the type of the error * * @param error A pointer to a error struct * @returns The description, NULL on error * */ const char *osync_error_get_name(OSyncError **error) { osync_return_val_if_fail(error != NULL, NULL); if (!*error) return osync_error_name_from_type(OSYNC_NO_ERROR); return osync_error_name_from_type((*error)->type); }
osync_bool osync_merger_demerge(OSyncMerger *merger, OSyncChange *change, OSyncCapabilities *caps, OSyncError **error) { char *buffer; unsigned int size; osync_assert(merger); osync_assert(change); osync_return_val_if_fail(caps, TRUE); OSyncData *data = osync_change_get_data(change); osync_data_get_data(data, &buffer, &size); if (size == 0) { osync_error_set(error, OSYNC_ERROR_GENERIC, "Can't demerge data with 0 size."); goto error; } if (buffer == NULL) { osync_error_set(error, OSYNC_ERROR_GENERIC, "No data to demerge."); goto error; } if (!merger->demerge_func(&buffer, &size, caps, NULL /*userdata!*/, error)) goto error; return TRUE; error: return FALSE; }
OSyncMerger *osync_merger_ref(OSyncMerger *merger) { osync_return_val_if_fail(merger, NULL); g_atomic_int_inc(&(merger->ref_count)); return merger; }
OSyncMember *osync_sink_engine_get_member(OSyncSinkEngine *engine) { osync_return_val_if_fail(engine, NULL); osync_return_val_if_fail(engine->proxy, NULL); return osync_client_proxy_get_member(engine->proxy); }
const OSyncList *osync_sink_engine_get_mapping_entry_engines(OSyncSinkEngine *engine) { osync_return_val_if_fail(engine, NULL); return engine->entries; }
const char *osync_merger_get_objformat(OSyncMerger *merger) { osync_return_val_if_fail(merger, NULL); return merger->objformat; }
const char *osync_xmlfield_get_value(OSyncXMLField *xmlfield) { osync_return_val_if_fail(xmlfield, ""); return (const char *)osync_xml_node_get_content(xmlfield->node); }
OSyncXMLField *osync_xmlfield_get_child(OSyncXMLField *xmlfield) { osync_return_val_if_fail(xmlfield, NULL); return xmlfield->child; }
OSyncXMLField *osync_xmlfield_get_parent(OSyncXMLField *xmlfield) { osync_return_val_if_fail(xmlfield, NULL); return xmlfield->parent; }
OSyncXMLField *osync_xmlfield_get_prev(OSyncXMLField *xmlfield) { osync_return_val_if_fail(xmlfield, NULL); return xmlfield->prev; }
OSyncXMLField *osync_xmlfield_get_next(OSyncXMLField *xmlfield) { osync_return_val_if_fail(xmlfield, NULL); return xmlfield->next; }