From: <svn...@op...> - 2009-03-28 19:46:04
|
Author: dgollub Date: Sat Mar 28 20:45:59 2009 New Revision: 5403 URL: http://www.opensync.org/changeset/5403 Log: Ported file-sync plugin to OSyncPlugin list pattern API cleanup r5382 refs #975 Modified: plugins/file-sync/src/file_sync.c Modified: plugins/file-sync/src/file_sync.c ============================================================================== --- plugins/file-sync/src/file_sync.c Sat Mar 28 20:35:17 2009 (r5402) +++ plugins/file-sync/src/file_sync.c Sat Mar 28 20:45:59 2009 (r5403) @@ -513,6 +513,8 @@ * all _possible_ objtype sinks. */ static void *osync_filesync_initialize(OSyncPlugin *plugin, OSyncPluginInfo *info, OSyncError **error) { + OSyncList *s , *sinks = NULL; + osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, info, error); OSyncFileEnv *env = osync_try_malloc0(sizeof(OSyncFileEnv), error); @@ -524,14 +526,14 @@ GList *pathes = NULL; - int i, numobjs = osync_plugin_info_num_objtypes(info); - for (i = 0; i < numobjs; i++) { + sinks = osync_plugin_info_get_objtypes(info); + for (s = sinks; s; s = s->next) { OSyncFileDir *dir = osync_try_malloc0(sizeof(OSyncFileDir), error); if (!dir) goto error_free_env; dir->env = env; - dir->sink = osync_plugin_info_nth_objtype(info, i); + dir->sink = (OSyncObjTypeSink *) s->data; assert(dir->sink); const char *objtype = osync_objtype_sink_get_name(dir->sink); @@ -582,6 +584,7 @@ /* Request an hashtable from the framework. */ osync_objtype_sink_enable_hashtable(dir->sink, TRUE); } + osync_list_free(sinks); if (pathes) { g_list_foreach(pathes, (GFunc)g_free, NULL); @@ -594,6 +597,9 @@ error_free_env: free_env(env); error: + if (sinks) + osync_list_free(sinks); + osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error)); return NULL; } @@ -611,13 +617,14 @@ { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, error); - int i, numobjs = osync_plugin_info_num_objtypes(info); - for (i = 0; i < numobjs; i++) { - OSyncObjTypeSink *sink = osync_plugin_info_nth_objtype(info, i); + OSyncList *s, *sinks = osync_plugin_info_get_objtypes(info); + for (s = sinks; s; s = s->next) { + OSyncObjTypeSink *sink = (OSyncObjTypeSink *) s->data; g_assert(sink); osync_objtype_sink_set_available(sink, TRUE); } + osync_list_free(sinks); OSyncVersion *version = osync_version_new(error); osync_version_set_plugin(version, "file-sync"); |