You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
(56) |
Apr
(109) |
May
(15) |
Jun
(3) |
Jul
(37) |
Aug
(96) |
Sep
(40) |
Oct
(4) |
Nov
(54) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(47) |
Feb
(30) |
Mar
(102) |
Apr
(120) |
May
(68) |
Jun
(54) |
Jul
(53) |
Aug
(122) |
Sep
(190) |
Oct
(71) |
Nov
(85) |
Dec
(108) |
2007 |
Jan
(72) |
Feb
(190) |
Mar
(53) |
Apr
(101) |
May
(145) |
Jun
(148) |
Jul
(167) |
Aug
(143) |
Sep
(23) |
Oct
(198) |
Nov
(223) |
Dec
(195) |
2008 |
Jan
(100) |
Feb
(129) |
Mar
(79) |
Apr
(77) |
May
(34) |
Jun
(95) |
Jul
(112) |
Aug
(160) |
Sep
(82) |
Oct
(124) |
Nov
(199) |
Dec
(355) |
2009 |
Jan
(436) |
Feb
(89) |
Mar
(298) |
Apr
(189) |
May
(33) |
Jun
(88) |
Jul
(105) |
Aug
(44) |
Sep
(181) |
Oct
(87) |
Nov
(75) |
Dec
(1) |
2010 |
Jan
(63) |
Feb
(21) |
Mar
(3) |
Apr
(1) |
May
(1) |
Jun
(3) |
Jul
(26) |
Aug
(37) |
Sep
(26) |
Oct
(15) |
Nov
(13) |
Dec
|
From: <svn...@op...> - 2009-03-30 03:28:38
|
Author: dgollub Date: Mon Mar 30 05:28:31 2009 New Revision: 5449 URL: http://www.opensync.org/changeset/5449 Log: Ported SyncML plugin to latest OpenSync API changes. (Dropped obsolate interface, ported slow-sync request to osync_context_report_slowsync()) Load the anchor in advanced already in the init function so a pointer can be retrieved via osync_objtype_sink_get_anchor(). refs #1085 Modified: plugins/syncml/src/syncml_callbacks.c plugins/syncml/src/syncml_common.c plugins/syncml/src/syncml_common.h Modified: plugins/syncml/src/syncml_callbacks.c ============================================================================== --- plugins/syncml/src/syncml_callbacks.c Mon Mar 30 05:08:09 2009 (r5448) +++ plugins/syncml/src/syncml_callbacks.c Mon Mar 30 05:28:31 2009 (r5449) @@ -200,7 +200,7 @@ if (recvType == SML_ALERT_SLOW_SYNC) { osync_trace(TRACE_INTERNAL, "%s: signal SLOW-SYNC", __func__); - osync_objtype_sink_set_slowsync(database->sink, TRUE); + osync_context_report_slowsync(database->connectCtx); } /* signal the connect event */ @@ -253,12 +253,10 @@ SmlError **error) { SmlPluginEnv *env = userdata; - OSyncObjTypeSink *sink = osync_plugin_info_get_sink(env->pluginInfo); - OSyncAnchor *anchor = osync_objtype_sink_get_anchor(sink); OSyncError *oerror = NULL; - osync_assert(anchor); - // TODO error handling - return osync_anchor_retrieve(anchor, &oerror); + osync_assert(env->anchor); + /* TODO: error report - via SmlError? */ + return osync_anchor_retrieve(env->anchor, &oerror); } SmlBool _set_anchor( @@ -269,12 +267,10 @@ SmlError **error) { SmlPluginEnv *env = userdata; - OSyncObjTypeSink *sink = osync_plugin_info_get_sink(env->pluginInfo); - OSyncAnchor *anchor = osync_objtype_sink_get_anchor(sink); OSyncError *oerror = NULL; - osync_assert(anchor); - // TODO error handling - return osync_anchor_update(anchor, value, &oerror); + osync_assert(env->anchor); + /* TODO: error reporting - via SmlError? */ + return osync_anchor_update(env->anchor, value, &oerror); } /* ************************************ */ Modified: plugins/syncml/src/syncml_common.c ============================================================================== --- plugins/syncml/src/syncml_common.c Mon Mar 30 05:08:09 2009 (r5448) +++ plugins/syncml/src/syncml_common.c Mon Mar 30 05:28:31 2009 (r5449) @@ -804,7 +804,13 @@ osync_objtype_sink_set_userdata(mainsink, env); + /* Prepare anchor */ osync_objtype_sink_enable_anchor(mainsink, TRUE); + if (!osync_objtype_sink_load_anchor(mainsink, info, oerror)) + goto error_free_env; + + env->anchor = osync_objtype_sink_get_anchor(mainsink); + osync_plugin_info_set_main_sink(info, mainsink); osync_objtype_sink_unref(mainsink); Modified: plugins/syncml/src/syncml_common.h ============================================================================== --- plugins/syncml/src/syncml_common.h Mon Mar 30 05:08:09 2009 (r5448) +++ plugins/syncml/src/syncml_common.h Mon Mar 30 05:28:31 2009 (r5449) @@ -99,6 +99,7 @@ /* environment data */ OSyncPluginInfo *pluginInfo; + OSyncAnchor *anchor; GSource *source; GSourceFuncs *source_functions; |
From: <svn...@op...> - 2009-03-30 03:08:21
|
Author: dgollub Date: Mon Mar 30 05:08:09 2009 New Revision: 5448 URL: http://www.opensync.org/changeset/5448 Log: Ported osynctool to latest API-list-pattern redesign. refs #975 Modified: osynctool/trunk/tools/osynctool.c Modified: osynctool/trunk/tools/osynctool.c ============================================================================== --- osynctool/trunk/tools/osynctool.c Mon Mar 30 04:40:10 2009 (r5447) +++ osynctool/trunk/tools/osynctool.c Mon Mar 30 05:08:09 2009 (r5448) @@ -164,12 +164,16 @@ static osync_bool osynctool_list_formats(OSyncFormatEnv *env, OSyncError **error) { - int i; - for (i = 0; i < osync_format_env_num_objformats(env); i++) { - OSyncObjFormat *format = osync_format_env_nth_objformat(env, i); + OSyncList *o, *objformats = osync_format_env_get_objformats(env); + + for (o = objformats; o; o = o->next) { + OSyncObjFormat *format = (OSyncObjFormat *) o->data; printf("Format: %s\n", osync_objformat_get_name(format)); printf("\tObject Type: %s\n", osync_objformat_get_objtype(format)); } + + osync_list_free(objformats); + return TRUE; } @@ -200,15 +204,17 @@ static void osynctool_show_groups(OSyncGroupEnv *env) { - int i; OSyncGroup *group; + OSyncList *g, *groups = osync_group_env_get_groups(env); printf("Available groups:\n"); - for (i = 0; i < osync_group_env_num_groups(env); i++) { - group = osync_group_env_nth_group(env, i); + for (g = groups; g; g = g->next) { + group = (OSyncGroup *) g->data; printf("%s\n", osync_group_get_name(group)); } + + osync_list_free(groups); } static const char *OSyncChangeType2String(OSyncChangeType type) @@ -272,28 +278,28 @@ static void multiply_summary(OSyncEngine *engine, void *user_data) { - unsigned int o, i, num_objengines, num_members; const OSyncList *mapping_entry_engines, *e; osync_bool dirty = FALSE; OSyncError *error = NULL; + OSyncList *o, *objengines = osync_engine_get_objengines(engine); + OSyncList *m, *members; osync_trace(TRACE_ENTRY, "%s(%p %p)", __func__, engine, user_data); printf("\nSynchronization Forecast Summary:\n"); - num_objengines = osync_engine_num_objengines(engine); - for (o = 0; o < num_objengines; o++) { + for (o = objengines; o; o = o->next) { OSyncChangeType type; - OSyncObjEngine *objengine = osync_engine_nth_objengine(engine, o); + OSyncObjEngine *objengine = (OSyncObjEngine *) o->data; unsigned int added, modified, deleted; printf("\nObjType: %s\n", osync_obj_engine_get_objtype(objengine)); - num_members = osync_obj_engine_num_members(objengine); - for (i=0; i < num_members; i++) { - OSyncMember *member = osync_obj_engine_nth_member(objengine, i); + members = osync_obj_engine_get_members(objengine); + for (m = members; m; m = m->next) { + OSyncMember *member = (OSyncMember *) m->data; mapping_entry_engines = osync_obj_engine_get_mapping_entry_engines_of_member(objengine, member); @@ -482,9 +488,11 @@ static void conflict_handler(OSyncEngine *engine, OSyncMappingEngine *mapping, void *user_data) { + int i; OSyncError *error = NULL; OSyncConflictResolution res = OSYNC_CONFLICT_RESOLUTION_UNKNOWN; OSyncChange *change = NULL; + OSyncList *c, *changes = osync_mapping_engine_get_changes(mapping); printf("Conflict for Mapping %p: ", mapping); fflush(stdout); @@ -504,9 +512,8 @@ osync_bool supports_use_latest = osync_mapping_engine_supports_use_latest(mapping); if (res == OSYNC_CONFLICT_RESOLUTION_UNKNOWN) { - int i = 0; - for (i = 0; i < osync_mapping_engine_num_changes(mapping); i++) { - OSyncChange *change = osync_mapping_engine_nth_change(mapping, i); + for (i = 0, c = changes; c; c = c->next, i++) { + OSyncChange *change = (OSyncChange *) c->data; if (osync_change_get_changetype(change) != OSYNC_CHANGE_TYPE_UNKNOWN) { OSyncMember *member = osync_mapping_engine_change_find_member(mapping, change); OSyncData *data = osync_change_get_data(change); @@ -547,7 +554,7 @@ winner = atoi(inpbuf) - 1; if (winner >= 0) { - if (!osync_mapping_engine_nth_change(mapping, winner)) + if (!osync_list_nth(changes, winner)) printf("Unable to find change #%i\n", winner + 1); else res = OSYNC_CONFLICT_RESOLUTION_SELECT; @@ -584,7 +591,7 @@ case OSYNC_CONFLICT_RESOLUTION_SELECT: printf("Solving conflict\n"); - change = osync_mapping_engine_nth_change(mapping, winner); + change = (OSyncChange *) osync_list_nth(changes, winner); g_assert(change); if (!osync_engine_mapping_solve(engine, mapping, change, &error)) @@ -593,10 +600,13 @@ case OSYNC_CONFLICT_RESOLUTION_UNKNOWN: g_assert_not_reached(); } + + osync_list_free(changes); return; error: + osync_list_free(changes); printf("Conflict not resolved: %s\n", osync_error_print(&error)); osync_error_unref(&error); } @@ -605,6 +615,7 @@ { osync_trace(TRACE_ENTRY, "%s(%p, %s, %i, %i, %p, %p)", __func__, env, groupname, wait, multi, objtypes, error); + OSyncList *m, *members; OSyncGroup *group = osync_group_env_find_group(env, groupname); if (!group) { osync_error_set(error, OSYNC_ERROR_GENERIC, "Unable to find group with name %s", groupname); @@ -634,14 +645,15 @@ //if (manual) // osengine_flag_manual(engine); - unsigned int i; - for (i=0; i < osync_group_num_members(group); i++) { - OSyncMember *member = osync_group_nth_member(group, i); - unsigned int num = osync_member_num_objtypes(member); - if (num == 0) { + members = osync_group_get_members(group); + for (m = members; m; m = m->next) { + OSyncMember *member = (OSyncMember *) m->data; + OSyncList *objtypes = osync_member_get_objtypes(member); + if (osync_list_length(objtypes) == 0) { printf("Member %llu has no objtypes. Has it already been discovered?\n", osync_member_get_id(member)); } } + osync_list_free(members); if (!osync_engine_initialize(engine, error)) goto error_free_engine; @@ -715,9 +727,9 @@ static osync_bool osynctool_show_group(OSyncGroupEnv *env, const char *groupname, OSyncError **error) { - int i; const char *membername = NULL; OSyncMember *member = NULL; + OSyncList *m, *members; OSyncGroup *group = osync_group_env_find_group(env, groupname); if (!group) { @@ -727,8 +739,9 @@ printf("Group: %s\n", osync_group_get_name(group)); - for (i = 0; i < osync_group_num_members(group); i++) { - member = osync_group_nth_member(group, i); + members = osync_group_get_members(group); + for (m=members; m; m = m->next) { + member = (OSyncMember *) m->data; membername = osync_member_get_name(member); if (membername) { printf("Member %lli (%s): %s\n", osync_member_get_id(member), membername, osync_member_get_pluginname(member)); @@ -749,13 +762,16 @@ */ } } + + osync_list_free(members); + return TRUE; } static osync_bool osynctool_show_objtypes(OSyncGroupEnv *env, const char *groupname, OSyncError **error) { - int i; - OSyncMember *member = NULL; + unsigned int max; + OSyncList *o, *group_objtypes, *m, *members; OSyncGroup *group = osync_group_env_find_group(env, groupname); if (!group) { @@ -763,17 +779,17 @@ return FALSE; } - for (i = 0; i < osync_group_num_members(group); i++) { - member = osync_group_nth_member(group, i); - int num = osync_member_num_objtypes(member); - if (num == 0) { + members = osync_group_get_members(group); + for (m=members; m; m = m->next) { + OSyncMember *member = (OSyncMember *) m->data; + OSyncList *o, *objtypes = osync_member_get_objtypes(member); + if (osync_list_length(objtypes) == 0) { printf("Member %lli has no objtypes. Has it already been discovered?\n", osync_member_get_id(member)); } else { printf("Member %lli Objtypes:\n", osync_member_get_id(member)); - int n = 0; - for (n = 0; n < osync_member_num_objtypes(member); n++) { - const char *objtype = osync_member_nth_objtype(member, n); + for (o=objtypes; o; o = o->next) { + const char *objtype = (const char *) o->data; printf("\tObjtype %s: %s\n", objtype, osync_member_objtype_enabled(member, objtype) ? "Enabled" : "Disabled"); const OSyncList *formats = osync_member_get_objformats(member, objtype, error); if (!formats) { @@ -793,18 +809,22 @@ } } } + osync_list_free(objtypes); } + osync_list_free(members); - int max = osync_group_num_objtypes(group); + group_objtypes = osync_group_get_objtypes(group); + max = osync_list_length(group_objtypes); if (max == 0) { printf("Group has no objtypes. Have the objtypes already been discovered?\n"); } else { printf("Objtypes for the group:\n"); - for (i = 0; i < max; i++) { - const char *objtype = osync_group_nth_objtype(group, i); + for (o=group_objtypes; o; o = o->next) { + const char *objtype = (const char *) o->data; printf("\t%s: %s\n", objtype, osync_group_objtype_enabled(group, objtype) ? "Enabled" : "Disabled"); } } + osync_list_free(group_objtypes); return TRUE; } @@ -816,9 +836,10 @@ static osync_bool osynctool_show_capabilities(OSyncGroupEnv *env, const char *groupname, OSyncError **error) { - int i, size; + int size; char *data = NULL; OSyncMember *member = NULL; + OSyncList *m, *members; OSyncGroup *group = osync_group_env_find_group(env, groupname); if (!group) { @@ -828,8 +849,9 @@ printf("Group: %s\n", osync_group_get_name(group)); - for (i = 0; i < osync_group_num_members(group); i++) { - member = osync_group_nth_member(group, i); + members = osync_group_get_members(group); + for (m=members; m; m = m->next) { + member = (OSyncMember *) m->data; printf("Member %lli: %s\n", osync_member_get_id(member), osync_member_get_pluginname(member)); OSyncCapabilities *capabilities = osync_member_get_capabilities(member); @@ -842,6 +864,8 @@ printf("\n%s\n", data); g_free(data); } + osync_list_free(members); + return TRUE; } @@ -1190,6 +1214,7 @@ long long id = 0; OSyncMember *member = NULL; OSyncGroup *group = NULL; + OSyncList *objtypes = NULL, *o; osync_trace(TRACE_ENTRY, "%s(%p, %s, %s, %s, %i, %p)", __func__, env, groupname, memberid, objtype, isEnable, error); @@ -1212,19 +1237,19 @@ osync_objtype_sink_set_write(sink, isEnable); } else { /* Otherwise configure all sinks */ - int num = osync_member_num_objtypes(member); - if (num == 0) { + objtypes = osync_member_get_objtypes(member); + if (osync_list_length(objtypes) == 0) { osync_error_set(error, OSYNC_ERROR_GENERIC, "Member %lli has no objtypes. Has it already been discovered?\n", osync_member_get_id(member)); goto error; } else { - int n = 0; - for (n = 0; n < osync_member_num_objtypes(member); n++) { - const char *objtype = osync_member_nth_objtype(member, n); + for (o = objtypes; o; o = o->next) { + const char *objtype = (const char*) o->data; OSyncObjTypeSink *sink = osync_member_find_objtype_sink(member, objtype); osync_objtype_sink_set_write(sink, isEnable); } } } + osync_list_free(objtypes); if (!osync_member_save(member, error)) goto error; @@ -1232,6 +1257,7 @@ osync_trace(TRACE_EXIT, "%s", __func__); return TRUE; error: + osync_list_free(objtypes); osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error)); return FALSE; } @@ -1298,20 +1324,21 @@ static osync_bool osynctool_configure_discover_member(OSyncEngine *engine, OSyncMember *member, OSyncError **error) { + OSyncList *objtypes, *o; + /* Discover the objtypes for the members */ if (!osync_engine_discover_and_block(engine, member, error)) return FALSE; - int num = osync_member_num_objtypes(member); - if (num == 0) { + objtypes = osync_member_get_objtypes(member); + if (osync_list_length(objtypes) == 0) { osync_error_set(error, OSYNC_ERROR_GENERIC, "discover failed: no objtypes returned"); return FALSE; } else { printf("Discovered Objtypes:\n"); - int n = 0; - for (n = 0; n < osync_member_num_objtypes(member); n++) { - const char *objtype = osync_member_nth_objtype(member, n); + for (o = objtypes; o; o = o->next) { + const char *objtype = (const char *) o->data; printf("\t%s\n", objtype); const OSyncList *formats = osync_member_get_objformats(member, objtype, error); if (!formats) { @@ -1331,6 +1358,8 @@ } } + osync_list_free(objtypes); + if (!osync_member_save(member, error)) return FALSE; @@ -1342,6 +1371,7 @@ long long id = 0; OSyncMember *member = NULL; OSyncGroup *group = NULL; + OSyncList *members = NULL, *m; osync_trace(TRACE_ENTRY, "%s(%p, %p, %s, %s, %p)", __func__, env, pluginenv, groupname, memberid, error); @@ -1366,17 +1396,13 @@ if (!osynctool_configure_discover_member(engine, member, error)) goto error_engine_finalize; } else { - int i; - for (i = 0; i < osync_group_num_members(group); i++) { - member = osync_group_nth_member(group, i); - if (!member) { - osync_error_set(error, OSYNC_ERROR_GENERIC, "Unable to find member #%i", i); - goto error; - } - + members = osync_group_get_members(group); + for (m = members; m; m = m->next) { + member = (OSyncMember *) m->data; if (!osynctool_configure_discover_member(engine, member, error)) goto error_engine_finalize; } + osync_list_free(members); } //osync_engine_set_enginestatus_callback(engine, engine_status, NULL); @@ -1392,6 +1418,7 @@ osync_engine_finalize(engine, error); osync_engine_unref(engine); error: + osync_list_free(members); osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error)); return FALSE; } |
From: <svn...@op...> - 2009-03-30 02:40:21
|
Author: dgollub Date: Mon Mar 30 04:40:10 2009 New Revision: 5447 URL: http://www.opensync.org/changeset/5447 Log: Ported opie-sync plugin to slow-sync report API change (#1085) Fixed typo from previous commit r5436 (of osync_objtype_sink_set_*_func) refs #1085 Modified: plugins/opie-sync/src/opie_comms.c plugins/opie-sync/src/opie_comms.h plugins/opie-sync/src/opie_sync.c Modified: plugins/opie-sync/src/opie_comms.c ============================================================================== --- plugins/opie-sync/src/opie_comms.c Mon Mar 30 04:36:36 2009 (r5446) +++ plugins/opie-sync/src/opie_comms.c Mon Mar 30 04:40:10 2009 (r5447) @@ -247,16 +247,16 @@ /* * opie_fetch_sink */ -gboolean opie_fetch_sink(OpieSinkEnv *env) +gboolean opie_fetch_sink(OpieSinkEnv *env, OSyncContext *ctx) { - return opie_fetch_file(env->plugin_env, env->objtype, env->remotefile, &env->doc, env->sink); + return opie_fetch_file(env->plugin_env, env->objtype, env->remotefile, &env->doc, env->sink, ctx); } /* * opie_fetch_file */ -gboolean opie_fetch_file(OpiePluginEnv *env, OPIE_OBJECT_TYPE objtype, const char *remotefile, xmlDoc **doc, OSyncObjTypeSink *sink) +gboolean opie_fetch_file(OpiePluginEnv *env, OPIE_OBJECT_TYPE objtype, const char *remotefile, xmlDoc **doc, OSyncObjTypeSink *sink, OSyncContext *ctx) { osync_trace(TRACE_ENTRY, "%s(%p, %i, %s, %p, %p)", __func__, env, objtype, remotefile, doc, sink); @@ -334,9 +334,11 @@ if(rc) { if(!data) { - /* File didn't exist on the handheld (ie, clean device) */ - if(sink) - osync_objtype_sink_set_slowsync(sink, TRUE); + /* File didn't exist on the handheld (ie, clean device). + * And report a slowsync request + */ + osync_context_report_slowsync(ctx); + *doc = opie_xml_create_doc(objtype); if(*doc == 0) rc = FALSE; Modified: plugins/opie-sync/src/opie_comms.h ============================================================================== --- plugins/opie-sync/src/opie_comms.h Mon Mar 30 04:36:36 2009 (r5446) +++ plugins/opie-sync/src/opie_comms.h Mon Mar 30 04:40:10 2009 (r5447) @@ -39,8 +39,8 @@ /* connect to the device and pull down the data */ -gboolean opie_fetch_sink(OpieSinkEnv *env); -gboolean opie_fetch_file(OpiePluginEnv *env, OPIE_OBJECT_TYPE objtype, const char *remotefile, xmlDoc **doc, OSyncObjTypeSink *sink); +gboolean opie_fetch_sink(OpieSinkEnv *env, OSyncContext *ctx); +gboolean opie_fetch_file(OpiePluginEnv *env, OPIE_OBJECT_TYPE objtype, const char *remotefile, xmlDoc **doc, OSyncObjTypeSink *sink, OSyncContext *ctx); /* connect to the device and push the files back */ gboolean opie_put_sink(OpieSinkEnv *env); Modified: plugins/opie-sync/src/opie_sync.c ============================================================================== --- plugins/opie-sync/src/opie_sync.c Mon Mar 30 04:36:36 2009 (r5446) +++ plugins/opie-sync/src/opie_sync.c Mon Mar 30 04:40:10 2009 (r5447) @@ -267,13 +267,13 @@ if(!env->plugin_env->categories_doc) { /* Fetch categories */ - opie_fetch_file(env->plugin_env, OPIE_OBJECT_TYPE_CATEGORY, OPIE_CATEGORY_FILE, &env->plugin_env->categories_doc, NULL); + opie_fetch_file(env->plugin_env, OPIE_OBJECT_TYPE_CATEGORY, OPIE_CATEGORY_FILE, &env->plugin_env->categories_doc, NULL, ctx); } g_mutex_unlock(env->plugin_env->plugin_mutex); /* pull the required data back */ - if(!opie_fetch_sink(env)) + if(!opie_fetch_sink(env, ctx)) { /* failed */ char *errmsg; @@ -291,7 +291,7 @@ if(!osync_anchor_compare(anchor, env->plugin_env->notes_path, &anchor_result, &error)) goto error; if(!anchor_result) - osync_objtype_sink_set_slowsync(sink, TRUE); + osync_context_report_slowsync(ctx); } osync_context_report_success(ctx); @@ -601,9 +601,9 @@ /* Every sink can have different functions ... */ osync_objtype_sink_set_connect_func(sink, opie_sync_connect); osync_objtype_sink_set_disconnect_func(sink, opie_sync_disconnect); - osync_objtype_sink_set_get_changes_set_func(sink, opie_sync_get_changes); - osync_objtype_sink_set_commit_set_func(sink, opie_sync_commit_change); - osync_objtype_sink_set_sync_done_set_func(sink, opie_sync_sync_done); + osync_objtype_sink_set_get_changes_func(sink, opie_sync_get_changes); + osync_objtype_sink_set_commit_func(sink, opie_sync_commit_change); + osync_objtype_sink_set_sync_done_func(sink, opie_sync_sync_done); /* We pass the sink_env object to the sink, so we dont have to look it up * again once the functions are called */ |
From: <svn...@op...> - 2009-03-30 02:36:42
|
Author: dgollub Date: Mon Mar 30 04:36:36 2009 New Revision: 5446 URL: http://www.opensync.org/changeset/5446 Log: Ported evolution2 plugin to slow-sync report API change refs #1085 Modified: plugins/evolution2/src/evolution2_ebook.c plugins/evolution2/src/evolution2_ecal.c Modified: plugins/evolution2/src/evolution2_ebook.c ============================================================================== --- plugins/evolution2/src/evolution2_ebook.c Mon Mar 30 04:36:16 2009 (r5445) +++ plugins/evolution2/src/evolution2_ebook.c Mon Mar 30 04:36:36 2009 (r5446) @@ -154,7 +154,7 @@ } if (!anchor_match) { osync_trace(TRACE_INTERNAL, "EBook slow sync, due to anchor mismatch"); - osync_objtype_sink_set_slowsync(sink, TRUE); + osync_context_report_slowsync(ctx); } Modified: plugins/evolution2/src/evolution2_ecal.c ============================================================================== --- plugins/evolution2/src/evolution2_ecal.c Mon Mar 30 04:36:16 2009 (r5445) +++ plugins/evolution2/src/evolution2_ecal.c Mon Mar 30 04:36:36 2009 (r5446) @@ -104,7 +104,7 @@ } if (!anchor_match) { osync_trace(TRACE_INTERNAL, "ECal slow sync, due to anchor mismatch for objtype \"%s\"", osync_objtype_sink_get_name(sink)); - osync_objtype_sink_set_slowsync(sink, TRUE); + osync_context_report_slowsync(ctx); } osync_context_report_success(ctx); |
From: <svn...@op...> - 2009-03-30 02:36:22
|
Author: dgollub Date: Mon Mar 30 04:36:16 2009 New Revision: 5445 URL: http://www.opensync.org/changeset/5445 Log: Ported file-sync plugin to slow-sync report API change refs #1085 Modified: plugins/file-sync/src/file_sync.c Modified: plugins/file-sync/src/file_sync.c ============================================================================== --- plugins/file-sync/src/file_sync.c Mon Mar 30 04:34:56 2009 (r5444) +++ plugins/file-sync/src/file_sync.c Mon Mar 30 04:36:16 2009 (r5445) @@ -66,7 +66,7 @@ goto error; if (!anchormatch) - osync_objtype_sink_set_slowsync(dir->sink, TRUE); + osync_context_report_slowsync(ctx); if (!g_file_test(dir->path, G_FILE_TEST_IS_DIR)) { osync_error_set(&error, OSYNC_ERROR_GENERIC, "\"%s\" is not a directory", dir->path); |
From: <svn...@op...> - 2009-03-30 02:35:05
|
Author: dgollub Date: Mon Mar 30 04:34:56 2009 New Revision: 5444 URL: http://www.opensync.org/changeset/5444 Log: Dropped osync_objtype_sink_set_slowsync. Replacment is osync_context_report_slowsync(OSyncContext*) Reporting a slow-sync is only allowed/handled inside the connect() function context. Call this context report function before osync_context_report_success()! For further information see #1085 Furhter changes: * fixing typedef typo in public API * dropped wrong and unused test instrumentation in mock-sync ("LATE-SLOW-SYNC", is about getting not setting slow-sync) * ported example plugins * ported osyncplugin tool * some cleanups inside OSyncClient fixes #1085 Modified: trunk/docs/examples/plugins/src/plugin.c trunk/docs/examples/plugins/src/simple_plugin.c trunk/opensync.sym trunk/opensync/client/opensync_client.c trunk/opensync/plugin/opensync_context.c trunk/opensync/plugin/opensync_context.h trunk/opensync/plugin/opensync_context_private.h trunk/opensync/plugin/opensync_objtype_sink.c trunk/opensync/plugin/opensync_objtype_sink.h trunk/opensync/plugin/opensync_objtype_sink_internals.h trunk/tests/mock-plugin/mock_sync.c trunk/tools/osyncplugin.c Modified: trunk/docs/examples/plugins/src/plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/plugin.c Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/docs/examples/plugins/src/plugin.c Mon Mar 30 04:34:56 2009 (r5444) @@ -47,7 +47,7 @@ } if (!anchormatch) { /* request slow sync */ - osync_objtype_sink_set_slowsync(sink, TRUE); + osync_context_report_slowsync(ctx); } osync_context_report_success(ctx); Modified: trunk/docs/examples/plugins/src/simple_plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/simple_plugin.c Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/docs/examples/plugins/src/simple_plugin.c Mon Mar 30 04:34:56 2009 (r5444) @@ -43,7 +43,7 @@ if (!anchormatch) { /* request slow sync */ - osync_objtype_sink_set_slowsync(sink, TRUE); + osync_context_report_slowsync(ctx); } osync_context_report_success(ctx); Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync.sym Mon Mar 30 04:34:56 2009 (r5444) @@ -45,9 +45,11 @@ osync_context_report_error osync_context_report_osyncerror osync_context_report_osyncwarning +osync_context_report_slowsync osync_context_report_success osync_context_set_callback osync_context_set_changes_callback +osync_context_set_slowsync_callback osync_context_set_warning_callback osync_context_unref osync_converter_detect @@ -412,7 +414,6 @@ osync_objtype_sink_set_read osync_objtype_sink_set_read_func osync_objtype_sink_set_read_timeout -osync_objtype_sink_set_slowsync osync_objtype_sink_set_sync_done_func osync_objtype_sink_set_syncdone_timeout osync_objtype_sink_set_userdata Modified: trunk/opensync/client/opensync_client.c ============================================================================== --- trunk/opensync/client/opensync_client.c Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync/client/opensync_client.c Mon Mar 30 04:34:56 2009 (r5444) @@ -75,7 +75,7 @@ baton->change = change; if (baton->change) osync_change_ref(baton->change); - + osync_context_set_callback(context, callback, baton); return context; @@ -96,6 +96,13 @@ osync_free(baton); } +static void _osync_client_slowsync_callback(void *data) +{ + OSyncObjTypeSink *sink = (OSyncObjTypeSink *) data; + osync_objtype_sink_set_slowsync(sink, TRUE); +} + + static void _osync_client_connect_callback(void *data, OSyncError *error) { OSyncError *locerror = NULL; @@ -104,7 +111,7 @@ OSyncClient *client = NULL; char *objtype = NULL; OSyncObjTypeSink *sink = NULL; - int slowsync = 0; + osync_bool slowsync = FALSE; OSyncMessage *reply = NULL; baton = data; @@ -982,6 +989,8 @@ if (!context) goto error; + osync_context_set_slowsync_callback(context, _osync_client_slowsync_callback, sink); + osync_plugin_info_set_sink(client->plugin_info, sink); osync_objtype_sink_connect(sink, client->plugin_info, context); @@ -1152,13 +1161,6 @@ osync_message_unref(reply); } else { - /* set slowsync (again) if the slow-sync got requested during the connect() call - of a member - and not during frontend/engine itself (e.g. anchor mismatch). */ - if (slowsync) - osync_objtype_sink_set_slowsync(sink, TRUE); - else - osync_objtype_sink_set_slowsync(sink, FALSE); - context = _create_context(client, message, _osync_client_get_changes_callback, NULL, error); if (!context) goto error; @@ -1166,7 +1168,7 @@ osync_plugin_info_set_sink(client->plugin_info, sink); - osync_objtype_sink_get_changes(sink, client->plugin_info, context); + osync_objtype_sink_get_changes(sink, client->plugin_info, slowsync, context); osync_context_unref(context); } Modified: trunk/opensync/plugin/opensync_context.c ============================================================================== --- trunk/opensync/plugin/opensync_context.c Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync/plugin/opensync_context.c Mon Mar 30 04:34:56 2009 (r5444) @@ -68,6 +68,13 @@ context->changes_function = changes; } +void osync_context_set_slowsync_callback(OSyncContext *context, OSyncContextSlowSyncFn slowsync_func, void *userdata) +{ + osync_assert(context); + context->slowsync_function = slowsync_func; + context->slowsync_data = userdata; +} + void osync_context_set_warning_callback(OSyncContext *context, OSyncContextCallbackFn warning) { osync_assert(context); @@ -150,3 +157,14 @@ osync_trace(TRACE_EXIT, "%s", __func__); } + +void osync_context_report_slowsync(OSyncContext *context) +{ + osync_trace(TRACE_ENTRY, "%s(%p)", __func__, context); + osync_assert(context); + + context->slowsync_function(context->slowsync_data); + + osync_trace(TRACE_EXIT, "%s", __func__); +} + Modified: trunk/opensync/plugin/opensync_context.h ============================================================================== --- trunk/opensync/plugin/opensync_context.h Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync/plugin/opensync_context.h Mon Mar 30 04:34:56 2009 (r5444) @@ -33,6 +33,7 @@ typedef void (* OSyncContextCallbackFn)(void *, OSyncError *); typedef void (* OSyncContextChangeFn) (OSyncChange *, void *); +typedef void (* OSyncContextSlowSyncFn) (void *); OSYNC_EXPORT OSyncContext *osync_context_new(OSyncError **error); OSYNC_EXPORT OSyncContext *osync_context_ref(OSyncContext *context); @@ -40,6 +41,7 @@ OSYNC_EXPORT void osync_context_set_callback(OSyncContext *context, OSyncContextCallbackFn callback, void *userdata); OSYNC_EXPORT void osync_context_set_changes_callback(OSyncContext *context, OSyncContextChangeFn changes); +OSYNC_EXPORT void osync_context_set_slowsync_callback(OSyncContext *context, OSyncContextSlowSyncFn slowsync_func, void *userdata); OSYNC_EXPORT void osync_context_set_warning_callback(OSyncContext *context, OSyncContextCallbackFn warning); OSYNC_EXPORT void osync_context_report_error(OSyncContext *context, OSyncErrorType type, const char *format, ...); @@ -48,6 +50,7 @@ OSYNC_EXPORT void osync_context_report_osyncwarning(OSyncContext *context, OSyncError *error); OSYNC_EXPORT void osync_context_report_change(OSyncContext *context, OSyncChange *change); +OSYNC_EXPORT void osync_context_report_slowsync(OSyncContext *contextr); /*@}*/ Modified: trunk/opensync/plugin/opensync_context_private.h ============================================================================== --- trunk/opensync/plugin/opensync_context_private.h Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync/plugin/opensync_context_private.h Mon Mar 30 04:34:56 2009 (r5444) @@ -33,6 +33,8 @@ OSyncContextCallbackFn warning_function; void *callback_data; OSyncContextChangeFn changes_function; + OSyncContextSlowSyncFn slowsync_function; + void *slowsync_data; void *plugindata; int ref_count; }; Modified: trunk/opensync/plugin/opensync_objtype_sink.c ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.c Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync/plugin/opensync_objtype_sink.c Mon Mar 30 04:34:56 2009 (r5444) @@ -268,7 +268,7 @@ sink->userdata = userdata; } -void osync_objtype_sink_get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) +void osync_objtype_sink_get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, osync_bool slow_sync, OSyncContext *ctx) { OSyncObjTypeSinkFunctions functions; osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, sink, info, ctx); @@ -283,7 +283,7 @@ } else if (!functions.get_changes) { osync_context_report_success(ctx); } else { - functions.get_changes(sink, info, ctx, osync_objtype_sink_get_slowsync(sink), osync_objtype_sink_get_userdata(sink)); + functions.get_changes(sink, info, ctx, slow_sync, osync_objtype_sink_get_userdata(sink)); } osync_trace(TRACE_EXIT, "%s", __func__); @@ -319,7 +319,7 @@ osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, sink, info, ctx); osync_assert(sink); osync_assert(ctx); - + functions = sink->functions; if (!functions.connect) { osync_context_report_success(ctx); @@ -847,7 +847,7 @@ sink->functions.sync_done = sync_done_func; } -void osync_objtype_sink_set_disconnect_func(OSyncObjTypeSink *sink, OSyncSinkConnectFn disconnect_func) +void osync_objtype_sink_set_disconnect_func(OSyncObjTypeSink *sink, OSyncSinkDisconnectFn disconnect_func) { osync_return_if_fail(sink); sink->functions.disconnect = disconnect_func; Modified: trunk/opensync/plugin/opensync_objtype_sink.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.h Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync/plugin/opensync_objtype_sink.h Mon Mar 30 04:34:56 2009 (r5444) @@ -301,32 +301,17 @@ */ OSYNC_EXPORT void osync_objtype_sink_set_read(OSyncObjTypeSink *sink, osync_bool read); -/** @brief Sets the slow-sync state of a sink - * - * When slow-sync is requested, OpenSync synchronizes all entries rather than - * just the changes. - * - * Slow-sync should be requested if you know that your device's memory has - * been erased. If it is appropriate for your device, you can use OpenSync's - * anchor system to determine if you should request slow-sync. - * - * @param sink Pointer to the sink - * @param slowsync TRUE to request slow-sync, FALSE for normal sync - * - */ -OSYNC_EXPORT void osync_objtype_sink_set_slowsync(OSyncObjTypeSink *sink, osync_bool slowsync); - - /** @brief Queries a sink for the changed objects since the last sync * * Calls the get_changes function on a sink * * @param sink Pointer to the sink * @param info Pointer to the plugin info object + * @param slow_sync Bool to request a Slow Sync if set TRUE * @param ctx The sync context * */ -OSYNC_EXPORT void osync_objtype_sink_get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); +OSYNC_EXPORT void osync_objtype_sink_get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, osync_bool slow_sync, OSyncContext *ctx); /** @brief Reads a single object by its uid * @@ -532,7 +517,7 @@ OSYNC_EXPORT void osync_objtype_sink_set_connect_done_func(OSyncObjTypeSink *sink, OSyncSinkConnectDoneFn connect_done_func); -OSYNC_EXPORT void osync_objtype_sink_set_disconnect_func(OSyncObjTypeSink *sink, OSyncSinkConnectFn disconnect_func); +OSYNC_EXPORT void osync_objtype_sink_set_disconnect_func(OSyncObjTypeSink *sink, OSyncSinkDisconnectFn disconnect_func); /*@}*/ Modified: trunk/opensync/plugin/opensync_objtype_sink_internals.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink_internals.h Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/opensync/plugin/opensync_objtype_sink_internals.h Mon Mar 30 04:34:56 2009 (r5444) @@ -287,6 +287,21 @@ */ osync_bool osync_objtype_sink_get_slowsync(OSyncObjTypeSink *sink); +/** @brief Sets the slow-sync state of a sink + * + * When slow-sync is requested, OpenSync synchronizes all entries rather than + * just the changes. + * + * Slow-sync should be requested if you know that your device's memory has + * been erased. If it is appropriate for your device, you can use OpenSync's + * anchor system to determine if you should request slow-sync. + * + * @param sink Pointer to the sink + * @param slowsync TRUE to request slow-sync, FALSE for normal sync + * + */ +void osync_objtype_sink_set_slowsync(OSyncObjTypeSink *sink, osync_bool slowsync); + /** @brief Returns the number of object formats in the sink * * @param sink Pointer to the sink Modified: trunk/tests/mock-plugin/mock_sync.c ============================================================================== --- trunk/tests/mock-plugin/mock_sync.c Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/tests/mock-plugin/mock_sync.c Mon Mar 30 04:34:56 2009 (r5444) @@ -71,7 +71,7 @@ } if (mock_get_error(info->memberid, "CONNECT_SLOWSYNC")) - osync_objtype_sink_set_slowsync(sink, TRUE); + osync_context_report_slowsync(ctx); /* Skip Objtype related stuff like hashtable and anchor */ if (mock_get_error(info->memberid, "MAINSINK_CONNECT")) @@ -90,7 +90,7 @@ osync_assert_msg(osync_anchor_compare(anchor, dir->path, &anchor_compare_match, NULL), "Not expected to fail"); if (!anchor_compare_match) - osync_objtype_sink_set_slowsync(sink, TRUE); + osync_context_report_slowsync(ctx); osync_assert(g_file_test(dir->path, G_FILE_TEST_IS_DIR)); @@ -115,9 +115,6 @@ if (mock_get_error(info->memberid, "CONNECT_DONE_TIMEOUT")) return; - if (mock_get_error(info->memberid, "LATE_SLOW_SYNC")) - osync_objtype_sink_set_slowsync(sink, TRUE); - /* Validate connect_done() call before get_changes(), * and after connect(). */ Modified: trunk/tools/osyncplugin.c ============================================================================== --- trunk/tools/osyncplugin.c Mon Mar 30 00:50:49 2009 (r5443) +++ trunk/tools/osyncplugin.c Mon Mar 30 04:34:56 2009 (r5444) @@ -41,7 +41,8 @@ char *configfile = NULL; char *configdir = NULL; char *syncgroup = NULL; -osync_bool pluginlist= FALSE; +osync_bool pluginlist = FALSE; +osync_bool connect_requested_slowsync = FALSE; GList *sinks = NULL; GList *cmdlist = NULL; GList *changesList = NULL; @@ -568,16 +569,19 @@ static osync_bool get_changes_sink(Command *cmd, OSyncObjTypeSink *sink, SyncType type, OSyncError **error) { OSyncContext *context = NULL; + osync_bool slowsync = FALSE; + assert(sink); switch (type) { case SYNCTYPE_NORMAL: + slowsync = connect_requested_slowsync; break; case SYNCTYPE_FORCE_FASTSYNC: - osync_objtype_sink_set_slowsync(sink, FALSE); + slowsync = FALSE; break; case SYNCTYPE_FORCE_SLOWSYNC: - osync_objtype_sink_set_slowsync(sink, TRUE); + slowsync = TRUE; break; } @@ -590,7 +594,7 @@ osync_plugin_info_set_sink(plugin_info, sink); - osync_objtype_sink_get_changes(sink, plugin_info, context); + osync_objtype_sink_get_changes(sink, plugin_info, slowsync, context); osync_context_unref(context); @@ -644,6 +648,20 @@ return FALSE; } +static void _osyncplugin_ctx_callback_slowsync(void *user_data) +{ + + OSyncObjTypeSink *sink = (OSyncObjTypeSink *) user_data; + + printf("SlowSync got requested by CONNECT function"); + if (osync_objtype_sink_get_name(sink)) + printf(" for ObjType: \"%s\"", osync_objtype_sink_get_name(sink)); + + connect_requested_slowsync = TRUE; + + printf(".\n"); +} + static void _osyncplugin_ctx_callback_connect(void *user_data, OSyncError *error) { OSyncError *locerror = NULL; @@ -660,16 +678,6 @@ goto error; } - /* - if (osync_objtype_sink_get_slowsync(sink)) { - printf("SlowSync got requested by CONNECT function"); - if (osync_objtype_sink_get_name(sink)) - printf(" for ObjType: \"%s\"", osync_objtype_sink_get_name(sink)); - - printf(".\n"); - } - */ - g_mutex_lock(cmd->mutex); g_cond_signal(cmd->cond); cmd->done = TRUE; @@ -693,9 +701,13 @@ cmd->sink = sink; osync_context_set_callback(context, _osyncplugin_ctx_callback_connect, cmd); + osync_context_set_slowsync_callback(context, _osyncplugin_ctx_callback_slowsync, sink); osync_plugin_info_set_sink(plugin_info, sink); + /* Reset slow-sync state */ + connect_requested_slowsync = FALSE; + osync_objtype_sink_connect(sink, plugin_info, context); osync_context_unref(context); |
From: <svn...@op...> - 2009-03-29 22:50:56
|
Author: dgollub Date: Mon Mar 30 00:50:49 2009 New Revision: 5443 URL: http://www.opensync.org/changeset/5443 Log: Ported syncml plugin to OSyncObjTypeSinkFunctions API change (r5432) Still not working due to drop of osync_plugin_info_get_sink (WIP). refs #1086 Modified: plugins/syncml/src/syncml_common.c plugins/syncml/src/syncml_ds_client.c plugins/syncml/src/syncml_ds_server.c Modified: plugins/syncml/src/syncml_common.c ============================================================================== --- plugins/syncml/src/syncml_common.c Mon Mar 30 00:43:15 2009 (r5442) +++ plugins/syncml/src/syncml_common.c Mon Mar 30 00:50:49 2009 (r5443) @@ -792,18 +792,18 @@ goto error_free_env; } - /* prepare the function list for OpenSync */ - OSyncObjTypeSinkFunctions main_functions; - memset(&main_functions, 0, sizeof(main_functions)); - main_functions.sync_done = sync_done; - main_functions.disconnect = disconnect; /* Register main sink for connect and disconnect functions */ OSyncObjTypeSink *mainsink = osync_objtype_main_sink_new(oerror); if (!mainsink) goto error_free_env; - osync_objtype_sink_set_functions(mainsink, main_functions, env); + /* Set mainsink plugin functions */ + osync_objtype_sink_set_sync_done_func(mainsink, sync_done); + osync_objtype_sink_set_disconnect_func(mainsink, disconnect); + + osync_objtype_sink_set_userdata(mainsink, env); + osync_objtype_sink_enable_anchor(mainsink, TRUE); osync_plugin_info_set_main_sink(info, mainsink); osync_objtype_sink_unref(mainsink); Modified: plugins/syncml/src/syncml_ds_client.c ============================================================================== --- plugins/syncml/src/syncml_ds_client.c Mon Mar 30 00:43:15 2009 (r5442) +++ plugins/syncml/src/syncml_ds_client.c Mon Mar 30 00:50:49 2009 (r5443) @@ -40,13 +40,10 @@ if (!sinkEnabled) continue; - - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = syncml_connect; - functions.connect_done = syncml_connect_done; - functions.get_changes = ds_client_get_changeinfo; - functions.batch_commit = ds_client_batch_commit; + osync_objtype_sink_set_connect_func(sink, syncml_connect); + osync_objtype_sink_set_connect_done_func(sink, syncml_connect_done); + osync_objtype_sink_set_get_changes_func(sink, ds_client_get_changeinfo); + osync_objtype_sink_set_batch_commit_func(sink, ds_client_batch_commit); // Request an anchor from the framework. osync_objtype_sink_enable_anchor(sink, TRUE); @@ -74,7 +71,7 @@ osync_objformat_ref(database->objformat); - osync_objtype_sink_set_functions(sink, functions, database); + osync_objtype_sink_set_userdata(sink, database); env->databases = g_list_append(env->databases, database); Modified: plugins/syncml/src/syncml_ds_server.c ============================================================================== --- plugins/syncml/src/syncml_ds_server.c Mon Mar 30 00:43:15 2009 (r5442) +++ plugins/syncml/src/syncml_ds_server.c Mon Mar 30 00:50:49 2009 (r5443) @@ -39,12 +39,10 @@ if (!sinkEnabled) continue; - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = syncml_connect; - functions.connect_done = syncml_connect_done; - functions.get_changes = ds_server_get_changeinfo; - functions.batch_commit = ds_server_batch_commit; + osync_objtype_sink_set_connect_func(sink, syncml_connect); + osync_objtype_sink_set_connect_done_func(sink, syncml_connect_done); + osync_objtype_sink_set_get_changes_func(sink, ds_server_get_changeinfo); + osync_objtype_sink_set_batch_commit_func(sink, ds_server_batch_commit); // Request an anchor from the framework. osync_objtype_sink_enable_anchor(sink, TRUE); @@ -73,7 +71,7 @@ osync_objformat_ref(database->objformat); - osync_objtype_sink_set_functions(sink, functions, database); + osync_objtype_sink_set_userdata(sink, database); env->databases = g_list_append(env->databases, database); |
From: <svn...@op...> - 2009-03-29 22:43:25
|
Author: dgollub Date: Mon Mar 30 00:43:15 2009 New Revision: 5442 URL: http://www.opensync.org/changeset/5442 Log: Dropped traces of plugin-sink function write in gnokii-sync. Modified: plugins/gnokii-sync/src/gnokii_sync.c Modified: plugins/gnokii-sync/src/gnokii_sync.c ============================================================================== --- plugins/gnokii-sync/src/gnokii_sync.c Mon Mar 30 00:42:10 2009 (r5441) +++ plugins/gnokii-sync/src/gnokii_sync.c Mon Mar 30 00:43:15 2009 (r5442) @@ -219,7 +219,6 @@ contact_functions.sync_done = sync_done; /* contact_functions.read = osync_filesync_read; - contact_functions.write = osync_filesync_write; */ osync_objtype_sink_set_functions(contact_sinkenv->sink, contact_functions, contact_sinkenv); @@ -255,7 +254,6 @@ event_functions.sync_done = sync_done; /* event_functions.read = osync_filesync_read; - event_functions.write = osync_filesync_write; */ osync_objtype_sink_set_functions(event_sinkenv->sink, event_functions, event_sinkenv); |
From: <svn...@op...> - 2009-03-29 22:42:16
|
Author: dgollub Date: Mon Mar 30 00:42:10 2009 New Revision: 5441 URL: http://www.opensync.org/changeset/5441 Log: Dropped write plugin sink function - which is no longer provided by OpenSync API. (r5435) Modified: plugins/python-module/src/python_module.c plugins/python-module/src/sample.py Modified: plugins/python-module/src/python_module.c ============================================================================== --- plugins/python-module/src/python_module.c Mon Mar 30 00:36:41 2009 (r5440) +++ plugins/python-module/src/python_module.c Mon Mar 30 00:42:10 2009 (r5441) @@ -288,11 +288,6 @@ pm_call_module_method(data, "committed_all", info, ctx, NULL); } -static osync_bool pm_write(void *data, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change) -{ - return pm_call_module_method(data, "write", info, ctx, change); -} - static osync_bool pm_read(void *data, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change) { return pm_call_module_method(data, "read", info, ctx, change); @@ -308,7 +303,6 @@ .disconnect = pm_disconnect, .get_changes = pm_get_changes, .commit = pm_commit, - .write = pm_write, .committed_all = pm_committed_all, .read = pm_read, .batch_commit = NULL, /* not (yet) supported for python plugins */ Modified: plugins/python-module/src/sample.py ============================================================================== --- plugins/python-module/src/sample.py Mon Mar 30 00:36:41 2009 (r5440) +++ plugins/python-module/src/sample.py Mon Mar 30 00:42:10 2009 (r5441) @@ -23,7 +23,7 @@ def commit(self, info, ctx, chg): print "commit called!" - print "Opensync wants me to write data for UID", chg.uid + print "Opensync wants me to commit data for UID", chg.uid def committed_all(self, info, ctx): print "committed_all called!" @@ -32,10 +32,6 @@ print "read called!" print "OpenSync wants me to read the data for UID", chg.uid - def write(self, info, ctx, chg): - print "write called!" - print "Opensync wants me to write data for UID", chg.uid - def disconnect(self, info, ctx): print "disconnect called!" |
From: <svn...@op...> - 2009-03-29 22:36:47
|
Author: dgollub Date: Mon Mar 30 00:36:41 2009 New Revision: 5440 URL: http://www.opensync.org/changeset/5440 Log: Created CDash project on http://opensync.org/testing for ldap-sync. http://opensync.org/testing/index.php?project=ldap-sync Updated CTestConfig.cmake for result submission. With command "make Experimental" testsuite gets called and result submitted. There is also the possibility for continuous build testing running tests which each SVN commit. For this continuous build-hosts needs to be prepared. Modified: plugins/ldap-sync/CTestConfig.cmake Modified: plugins/ldap-sync/CTestConfig.cmake ============================================================================== --- plugins/ldap-sync/CTestConfig.cmake Mon Mar 30 00:34:37 2009 (r5439) +++ plugins/ldap-sync/CTestConfig.cmake Mon Mar 30 00:36:41 2009 (r5440) @@ -1,16 +1,13 @@ -## $Id$ -## ## This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. -## -## The following are required to uses Dart and the Cdash dashboard +## # The following are required to uses Dart and the Cdash dashboard ## ENABLE_TESTING() ## INCLUDE(Dart) set(CTEST_PROJECT_NAME "ldap-sync") -set(CTEST_NIGHTLY_START_TIME "00:00:00 CET") +set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") set(CTEST_DROP_METHOD "http") set(CTEST_DROP_SITE "opensync.org") -set(CTEST_DROP_LOCATION "/testing/submit.php?project=file-sync") +set(CTEST_DROP_LOCATION "/testing/submit.php?project=ldap-sync") set(CTEST_DROP_SITE_CDASH TRUE) |
From: <svn...@op...> - 2009-03-29 22:34:44
|
Author: dgollub Date: Mon Mar 30 00:34:37 2009 New Revision: 5439 URL: http://www.opensync.org/changeset/5439 Log: Ported ldap-sync to OSyncObjTypeSinkFunctions API changes (r5432) refs #1086 Modified: plugins/ldap-sync/src/ldap_plugin.c Modified: plugins/ldap-sync/src/ldap_plugin.c ============================================================================== --- plugins/ldap-sync/src/ldap_plugin.c Mon Mar 30 00:33:10 2009 (r5438) +++ plugins/ldap-sync/src/ldap_plugin.c Mon Mar 30 00:34:37 2009 (r5439) @@ -4386,16 +4386,13 @@ /* Every sink CAN have different functions ... */ - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = ldap_plugin_connect; - functions.disconnect = ldap_plugin_disconnect; - functions.get_changes = ldap_plugin_get_changes; - functions.commit = ldap_plugin_commit_change; - functions.sync_done = ldap_plugin_sync_done; + osync_objtype_sink_set_connect_func(sinkenv->sink, ldap_plugin_connect); + osync_objtype_sink_set_disconnect_func(sinkenv->sink, ldap_plugin_disconnect); + osync_objtype_sink_set_get_changes_func(sinkenv->sink, ldap_plugin_get_changes); + osync_objtype_sink_set_commit_func(sinkenv->sink, ldap_plugin_commit_change); + osync_objtype_sink_set_sync_done_func(sinkenv->sink, ldap_plugin_sync_done); - - sinkenv->sink = osync_plugin_info_find_objtype(info, objtype); + sinkenv->sink = osync_plugin_info_find_objtype(info, objtype); if (!sinkenv->sink) { osync_trace(TRACE_INTERNAL, "%s:%i: INFO: No sink available for objtype \"%s\". Apparently, this objtype has been disabled by configuration.\n", __FILE__, __LINE__, objtype); goto out; @@ -4412,7 +4409,7 @@ osync_trace(TRACE_INTERNAL, "%s: Is this sink (%s) enabled? %d", __func__, objtype, osync_objtype_sink_is_enabled(sinkenv->sink)); - osync_objtype_sink_set_functions(sinkenv->sink, functions, sinkenv); + osync_objtype_sink_set_userdata(sinkenv->sink, sinkenv); // Initialize hashtable system osync_objtype_sink_enable_hashtable(sinkenv->sink, TRUE); |
From: <svn...@op...> - 2009-03-29 22:33:17
|
Author: dgollub Date: Mon Mar 30 00:33:10 2009 New Revision: 5438 URL: http://www.opensync.org/changeset/5438 Log: Drop write-sink function from file-sync plugin. The write sink plugin function got dropped from the OpenSync API r5435 Modified: plugins/file-sync/src/file_sync.c Modified: plugins/file-sync/src/file_sync.c ============================================================================== --- plugins/file-sync/src/file_sync.c Mon Mar 30 00:26:13 2009 (r5437) +++ plugins/file-sync/src/file_sync.c Mon Mar 30 00:33:10 2009 (r5438) @@ -568,7 +568,6 @@ osync_objtype_sink_set_get_changes_func(dir->sink, osync_filesync_get_changes); osync_objtype_sink_set_commit_func(dir->sink, osync_filesync_commit_change); osync_objtype_sink_set_read_func(dir->sink, osync_filesync_read); - osync_objtype_sink_set_write_func(dir->sink, osync_filesync_write); osync_objtype_sink_set_sync_done_func(dir->sink, osync_filesync_sync_done); /* We pass the OSyncFileDir object to the sink, so we dont have to look it up |
From: <svn...@op...> - 2009-03-29 22:26:27
|
Author: dgollub Date: Mon Mar 30 00:26:13 2009 New Revision: 5437 URL: http://www.opensync.org/changeset/5437 Log: Fix legacy includes in xmlformat plugin. Modified: format-plugins/xmlformat/trunk/src/xmlformat_merge.c Modified: format-plugins/xmlformat/trunk/src/xmlformat_merge.c ============================================================================== --- format-plugins/xmlformat/trunk/src/xmlformat_merge.c Mon Mar 30 00:22:09 2009 (r5436) +++ format-plugins/xmlformat/trunk/src/xmlformat_merge.c Mon Mar 30 00:26:13 2009 (r5437) @@ -22,7 +22,7 @@ #include "xmlformat.h" -#include <opensync/opensync-merger.h> +#include <opensync/opensync-capabilities.h> osync_bool merge_xmlformat(char **buf, unsigned int *size, const char *entirebuf, unsigned int entiresize, OSyncCapabilities *caps, void *userdata, OSyncError **error) { |
From: <svn...@op...> - 2009-03-29 22:22:16
|
Author: dgollub Date: Mon Mar 30 00:22:09 2009 New Revision: 5436 URL: http://www.opensync.org/changeset/5436 Log: Ported opie-sync plugin to OSyncObjTypeSinkFunctions API change (r5432) refs #1086 Modified: plugins/opie-sync/src/opie_sync.c Modified: plugins/opie-sync/src/opie_sync.c ============================================================================== --- plugins/opie-sync/src/opie_sync.c Mon Mar 30 00:16:21 2009 (r5435) +++ plugins/opie-sync/src/opie_sync.c Mon Mar 30 00:22:09 2009 (r5436) @@ -599,17 +599,15 @@ sink_env->objformat = osync_format_env_find_objformat(formatenv, objformat); /* Every sink can have different functions ... */ - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = opie_sync_connect; - functions.disconnect = opie_sync_disconnect; - functions.get_changes = opie_sync_get_changes; - functions.commit = opie_sync_commit_change; - functions.sync_done = opie_sync_sync_done; + osync_objtype_sink_set_connect_func(sink, opie_sync_connect); + osync_objtype_sink_set_disconnect_func(sink, opie_sync_disconnect); + osync_objtype_sink_set_get_changes_set_func(sink, opie_sync_get_changes); + osync_objtype_sink_set_commit_set_func(sink, opie_sync_commit_change); + osync_objtype_sink_set_sync_done_set_func(sink, opie_sync_sync_done); /* We pass the sink_env object to the sink, so we dont have to look it up * again once the functions are called */ - osync_objtype_sink_set_functions(sink, functions, sink_env); + osync_objtype_sink_set_userdata(sink, sink_env); /* Request a hashtable from the framework. */ osync_objtype_sink_enable_hashtable(sink, TRUE); |
From: <svn...@op...> - 2009-03-29 22:16:33
|
Author: dgollub Date: Mon Mar 30 00:16:21 2009 New Revision: 5435 URL: http://www.opensync.org/changeset/5435 Log: Drop Sink Plugin function "write" (don't mixup with "commit"!). This plugin function was never used inside the engine and just causes confusion. Currently there is also no need for a "sync framework" to do "single writes" out of sync order. Modified: trunk/opensync.sym trunk/opensync/group/opensync_member.c trunk/opensync/ipc/opensync_serializer.c trunk/opensync/plugin/opensync_objtype_sink.c trunk/opensync/plugin/opensync_objtype_sink.h trunk/opensync/plugin/opensync_objtype_sink_internals.h trunk/opensync/plugin/opensync_objtype_sink_private.h trunk/tests/mock-plugin/mock_sync.c Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/opensync.sym Mon Mar 30 00:16:21 2009 (r5435) @@ -417,8 +417,6 @@ osync_objtype_sink_set_syncdone_timeout osync_objtype_sink_set_userdata osync_objtype_sink_set_write -osync_objtype_sink_set_write_func -osync_objtype_sink_set_write_timeout osync_objtype_sink_sync_done osync_objtype_sink_unref osync_plugin_advancedoption_add_parameter Modified: trunk/opensync/group/opensync_member.c ============================================================================== --- trunk/opensync/group/opensync_member.c Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/opensync/group/opensync_member.c Mon Mar 30 00:16:21 2009 (r5435) @@ -55,8 +55,6 @@ osync_objtype_sink_set_committedall_timeout(sink, atoi(str)); } else if (!xmlStrcmp(cur->name, (const xmlChar *)"sync_done")) { osync_objtype_sink_set_syncdone_timeout(sink, atoi(str)); - } else if (!xmlStrcmp(cur->name, (const xmlChar *)"write")) { - osync_objtype_sink_set_write_timeout(sink, atoi(str)); } else if (!xmlStrcmp(cur->name, (const xmlChar *)"read")) { osync_objtype_sink_set_read_timeout(sink, atoi(str)); } @@ -90,8 +88,6 @@ osync_objtype_sink_set_read(sink, atoi(str)); } else if (!xmlStrcmp(cur->name, (const xmlChar *)"getchanges")) { osync_objtype_sink_set_getchanges(sink, atoi(str)); - } else if (!xmlStrcmp(cur->name, (const xmlChar *)"write")) { - osync_objtype_sink_set_write(sink, atoi(str)); } else if (!xmlStrcmp(cur->name, (const xmlChar *)"objformat")) { xmlChar *str_name = osync_xml_find_node(cur, "name"); xmlChar *str_config = osync_xml_find_node(cur, "config"); @@ -461,7 +457,6 @@ _osync_member_save_sink_add_timeout(node, "batch_commit", osync_objtype_sink_get_batchcommit_timeout(sink), error); _osync_member_save_sink_add_timeout(node, "committed_all", osync_objtype_sink_get_committedall_timeout(sink), error); _osync_member_save_sink_add_timeout(node, "sync_done", osync_objtype_sink_get_syncdone_timeout(sink), error); - _osync_member_save_sink_add_timeout(node, "write", osync_objtype_sink_get_write_timeout(sink), error); _osync_member_save_sink_add_timeout(node, "read", osync_objtype_sink_get_read_timeout(sink), error); if (!node->children) { @@ -488,7 +483,6 @@ xmlNewChild(node, NULL, (xmlChar*)"enabled", osync_objtype_sink_is_enabled(sink) ? (xmlChar*)"1" : (xmlChar*)"0"); xmlNewChild(node, NULL, (xmlChar*)"read", osync_objtype_sink_get_read(sink) ? (xmlChar*)"1" : (xmlChar*)"0"); xmlNewChild(node, NULL, (xmlChar*)"getchanges", osync_objtype_sink_get_getchanges(sink) ? (xmlChar*)"1" : (xmlChar*)"0"); - xmlNewChild(node, NULL, (xmlChar*)"write", osync_objtype_sink_get_write(sink) ? (xmlChar*)"1" : (xmlChar*)"0"); /* Check if sink is a Main Sink, if so skip objtype specific stuff */ if (sink && !osync_objtype_sink_get_name(sink)) Modified: trunk/opensync/ipc/opensync_serializer.c ============================================================================== --- trunk/opensync/ipc/opensync_serializer.c Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/opensync/ipc/opensync_serializer.c Mon Mar 30 00:16:21 2009 (r5435) @@ -288,7 +288,6 @@ * name * read function (bool) * get_changes function (bool) - * write function (bool) * preferred_format (string) * number of format sinks * format sink list (format sinks) @@ -301,7 +300,6 @@ * timeout committed_all (int) * timeout sync_done (int) * timeout read (int) - * timeout write (int) * */ @@ -310,7 +308,6 @@ osync_message_write_int(message, osync_objtype_sink_get_function_read(sink)); osync_message_write_int(message, osync_objtype_sink_get_function_getchanges(sink)); - osync_message_write_int(message, osync_objtype_sink_get_function_write(sink)); osync_message_write_string(message, osync_objtype_sink_get_preferred_format(sink)); @@ -335,7 +332,6 @@ osync_message_write_int(message, osync_objtype_sink_get_syncdone_timeout(sink)); osync_message_write_int(message, osync_objtype_sink_get_read_timeout(sink)); - osync_message_write_int(message, osync_objtype_sink_get_write_timeout(sink)); return TRUE; @@ -350,7 +346,7 @@ char *preferred_format = NULL; int num_formats = 0; int enabled = 0, timeout = 0; - int read = 0, get_changes = 0, write = 0; + int read = 0, get_changes = 0; int i = 0; osync_assert(message); @@ -360,7 +356,6 @@ * name * read function (bool) * get_changes function (bool) - * write function (bool) * preferred_format (string) * number of format sinks * format sink list (format sinks) @@ -373,7 +368,6 @@ * timeout committed_all (int) * timeout sync_done (int) * timeout read (int) - * timeout write (int) * */ @@ -391,9 +385,6 @@ osync_message_read_int(message, &get_changes); osync_objtype_sink_set_function_getchanges(*sink, get_changes); - osync_message_read_int(message, &write); - osync_objtype_sink_set_function_write(*sink, write); - osync_message_read_string(message, &preferred_format); osync_objtype_sink_set_preferred_format(*sink, preferred_format); osync_free(preferred_format); @@ -437,9 +428,6 @@ osync_message_read_int(message, &timeout); osync_objtype_sink_set_read_timeout(*sink, timeout); - osync_message_read_int(message, &timeout); - osync_objtype_sink_set_write_timeout(*sink, timeout); - return TRUE; error: Modified: trunk/opensync/plugin/opensync_objtype_sink.c ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.c Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/opensync/plugin/opensync_objtype_sink.c Mon Mar 30 00:16:21 2009 (r5435) @@ -256,22 +256,16 @@ sink->func_getchanges = getchanges; } -osync_bool osync_objtype_sink_get_function_write(OSyncObjTypeSink *sink) -{ - osync_assert(sink); - return sink->func_write; -} - -void osync_objtype_sink_set_function_write(OSyncObjTypeSink *sink, osync_bool write) +void *osync_objtype_sink_get_userdata(OSyncObjTypeSink *sink) { osync_assert(sink); - sink->func_write = write; + return sink->userdata; } -void *osync_objtype_sink_get_userdata(OSyncObjTypeSink *sink) +void osync_objtype_sink_set_userdata(OSyncObjTypeSink *sink, void *userdata) { - osync_assert(sink); - return sink->userdata; + osync_return_if_fail(sink); + sink->userdata = userdata; } void osync_objtype_sink_get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) @@ -696,24 +690,6 @@ return sink->timeout.connect_done; } -void osync_objtype_sink_set_write_timeout(OSyncObjTypeSink *sink, unsigned int timeout) -{ - osync_assert(sink); - sink->timeout.write = timeout; -} - -unsigned int osync_objtype_sink_get_write_timeout_or_default(OSyncObjTypeSink *sink) -{ - osync_assert(sink); - return sink->timeout.write ? sink->timeout.write : OSYNC_SINK_TIMEOUT_WRITE; -} - -unsigned int osync_objtype_sink_get_write_timeout(OSyncObjTypeSink *sink) -{ - osync_assert(sink); - return sink->timeout.write; -} - void osync_objtype_sink_set_read_timeout(OSyncObjTypeSink *sink, unsigned int timeout) { osync_assert(sink); @@ -817,12 +793,6 @@ return FALSE; } -void osync_objtype_sink_set_userdata(OSyncObjTypeSink *sink, void *userdata) -{ - osync_return_if_fail(sink); - sink->userdata = userdata; -} - void osync_objtype_sink_set_connect_func(OSyncObjTypeSink *sink, OSyncSinkConnectFn connect_func) { osync_return_if_fail(sink); @@ -850,15 +820,6 @@ sink->functions.commit = commit_func; } -void osync_objtype_sink_set_write_func(OSyncObjTypeSink *sink, OSyncSinkWriteFn write_func) -{ - osync_return_if_fail(sink); - sink->functions.write = write_func; - - if (sink->functions.write) - sink->func_write = TRUE; -} - void osync_objtype_sink_set_committed_all_func(OSyncObjTypeSink *sink, OSyncSinkCommittedAllFn committed_all_func) { osync_return_if_fail(sink); Modified: trunk/opensync/plugin/opensync_objtype_sink.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.h Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/opensync/plugin/opensync_objtype_sink.h Mon Mar 30 00:16:21 2009 (r5435) @@ -465,14 +465,6 @@ */ OSYNC_EXPORT void osync_objtype_sink_set_syncdone_timeout(OSyncObjTypeSink *sink, unsigned int timeout); -/** @brief Sets the write timeout in seconds for the OSyncObjTypeSink - * - * @param sink Pointer to the sink - * @param timeout The timeout in seconds - * - */ -OSYNC_EXPORT void osync_objtype_sink_set_write_timeout(OSyncObjTypeSink *sink, unsigned int timeout); - /** @brief Sets the read timeout in seconds for the OSyncObjTypeSink * * @param sink Pointer to the sink @@ -530,8 +522,6 @@ OSYNC_EXPORT void osync_objtype_sink_set_commit_func(OSyncObjTypeSink *sink, OSyncSinkCommitFn commit_func); -OSYNC_EXPORT void osync_objtype_sink_set_write_func(OSyncObjTypeSink *sink, OSyncSinkWriteFn write_func); - OSYNC_EXPORT void osync_objtype_sink_set_committed_all_func(OSyncObjTypeSink *sink, OSyncSinkCommittedAllFn committed_all_func); OSYNC_EXPORT void osync_objtype_sink_set_read_func(OSyncObjTypeSink *sink, OSyncSinkReadFn read_func); Modified: trunk/opensync/plugin/opensync_objtype_sink_internals.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink_internals.h Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/opensync/plugin/opensync_objtype_sink_internals.h Mon Mar 30 00:16:21 2009 (r5435) @@ -37,7 +37,6 @@ OSyncSinkDisconnectFn disconnect; OSyncSinkGetChangesFn get_changes; OSyncSinkCommitFn commit; - OSyncSinkWriteFn write; OSyncSinkCommittedAllFn committed_all; OSyncSinkReadFn read; OSyncSinkBatchCommitFn batch_commit; @@ -111,21 +110,6 @@ */ void osync_objtype_sink_set_function_getchanges(OSyncObjTypeSink *sink, osync_bool getchanges); -/** @brief Checks if sink has a write function (commit) - * - * @param sink Pointer to the sink - * @returns TRUE if the sink has a write function (commit), FALSE otherwise - */ -osync_bool osync_objtype_sink_get_function_write(OSyncObjTypeSink *sink); - -/** @brief Sets the status of the write sink function - * - * @param sink Pointer to sink - * @param write TRUE if the sink has a write function, FALSE otherwise - */ -void osync_objtype_sink_set_function_write(OSyncObjTypeSink *sink, osync_bool write); - - /** @brief Get the current or default connect timeout in seconds * * @param sink Pointer to the sink @@ -260,23 +244,6 @@ */ unsigned int osync_objtype_sink_get_connectdone_timeout(OSyncObjTypeSink *sink); -/** @brief Get the current or default write timeout in seconds - * - * @param sink Pointer to the sink - * @return The timeout in seconds - * - */ -unsigned int osync_objtype_sink_get_write_timeout_or_default(OSyncObjTypeSink *sink); - -/** @brief Get the current write timeout in seconds - * - * @param sink Pointer to the sink - * @return The timeout in seconds - * - */ -unsigned int osync_objtype_sink_get_write_timeout(OSyncObjTypeSink *sink); - - /** @brief Get the current or default read timeout in seconds * * @param sink Pointer to the sink @@ -337,7 +304,6 @@ */ OSYNC_TEST_EXPORT OSyncObjFormatSink *osync_objtype_sink_nth_objformat_sink(OSyncObjTypeSink *sink, unsigned int nth); - /*@}*/ #endif /* _OPENSYNC_SINK_INTERNALS_H_*/ Modified: trunk/opensync/plugin/opensync_objtype_sink_private.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink_private.h Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/opensync/plugin/opensync_objtype_sink_private.h Mon Mar 30 00:16:21 2009 (r5435) @@ -33,7 +33,7 @@ #define OSYNC_SINK_TIMEOUT_BATCHIO 1800 /* FIXME: OSYNC_SINK_TIMEOUT_COMMIT, OSYNC_SINK_TIMEOUT_READ, - OSYNC_SINK_TIMEOUT_WRITE are set to OSYNC_SINK_TIMEOUT_BATCHIO + are set to OSYNC_SINK_TIMEOUT_BATCHIO to workaround a timeout issue with the async client/proxy communication and the current timeout handling. @@ -59,7 +59,6 @@ #define OSYNC_SINK_TIMEOUT_COMMITTEDALL OSYNC_SINK_TIMEOUT_SINGLEIO #define OSYNC_SINK_TIMEOUT_SYNCDONE OSYNC_SINK_TIMEOUT_SINGLEIO #define OSYNC_SINK_TIMEOUT_READ OSYNC_SINK_TIMEOUT_BATCHIO /* FIXME */ -#define OSYNC_SINK_TIMEOUT_WRITE OSYNC_SINK_TIMEOUT_BATCHIO /* FIXME */ typedef struct OSyncObjTypeSinkFunctionTimeouts { unsigned int connect; @@ -71,7 +70,6 @@ unsigned int committed_all; unsigned int sync_done; unsigned int read; - unsigned int write; } OSyncObjTypeSinkFunctionTimeouts; struct OSyncObjTypeSink { @@ -104,8 +102,6 @@ /** The status if this sink is allowed to write (commit) */ osync_bool write; - /** The status if this sink has a write function (commit) */ - osync_bool func_write; /** The status if this sink is allowed to read (single entries) */ osync_bool read; Modified: trunk/tests/mock-plugin/mock_sync.c ============================================================================== --- trunk/tests/mock-plugin/mock_sync.c Mon Mar 30 00:14:57 2009 (r5434) +++ trunk/tests/mock-plugin/mock_sync.c Mon Mar 30 00:16:21 2009 (r5435) @@ -668,7 +668,6 @@ osync_objtype_sink_set_commit_func(sink, mock_commit_change); } osync_objtype_sink_set_read_func(sink, mock_read); - osync_objtype_sink_set_write_func(sink, mock_write); osync_objtype_sink_set_sync_done_func(sink, mock_sync_done); /* We pass the MockDir object to the sink, so we dont have to look it up @@ -691,7 +690,6 @@ osync_objtype_sink_set_disconnect_timeout(sink, 2); osync_objtype_sink_set_read_timeout(sink, 2); - osync_objtype_sink_set_write_timeout(sink, 2); /* XXX No testcase is currently using this at all! */ @@ -716,7 +714,6 @@ osync_objtype_sink_set_disconnect_timeout(sink, 0); osync_objtype_sink_set_read_timeout(sink, 0); - osync_objtype_sink_set_write_timeout(sink, 0); } /* What is meant by this?! Maybe OSyncPlugin.useable?! Not used at all... |
From: <svn...@op...> - 2009-03-29 22:15:04
|
Author: dgollub Date: Mon Mar 30 00:14:57 2009 New Revision: 5434 URL: http://www.opensync.org/changeset/5434 Log: Ported evo2-sync to OSyncObjTypeSinkFunctions API change (r5432) refs #1086 Modified: plugins/evolution2/src/evolution2_ebook.c plugins/evolution2/src/evolution2_ecal.c Modified: plugins/evolution2/src/evolution2_ebook.c ============================================================================== --- plugins/evolution2/src/evolution2_ebook.c Sun Mar 29 23:46:29 2009 (r5433) +++ plugins/evolution2/src/evolution2_ebook.c Mon Mar 30 00:14:57 2009 (r5434) @@ -421,13 +421,11 @@ return TRUE; } - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = evo2_ebook_connect; - functions.disconnect = evo2_ebook_disconnect; - functions.get_changes = evo2_ebook_get_changes; - functions.commit = evo2_ebook_modify; - functions.sync_done = evo2_ebook_sync_done; + osync_objtype_sink_set_connect_func(sink, evo2_ebook_connect); + osync_objtype_sink_set_disconnect_func(sink, evo2_ebook_disconnect); + osync_objtype_sink_set_get_changes_func(sink, evo2_ebook_get_changes); + osync_objtype_sink_set_commit_func(sink, evo2_ebook_modify); + osync_objtype_sink_set_sync_done_func(sink, evo2_ebook_sync_done); osync_objtype_sink_enable_anchor(sink, TRUE); @@ -456,7 +454,7 @@ env->contact_sink = osync_objtype_sink_ref(sink); - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_userdata(sink, env); osync_trace(TRACE_EXIT, "%s", __func__); return TRUE; Modified: plugins/evolution2/src/evolution2_ecal.c ============================================================================== --- plugins/evolution2/src/evolution2_ecal.c Sun Mar 29 23:46:29 2009 (r5433) +++ plugins/evolution2/src/evolution2_ecal.c Mon Mar 30 00:14:57 2009 (r5434) @@ -411,13 +411,11 @@ if (!sinkEnabled) return TRUE; - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = evo2_ecal_connect; - functions.disconnect = evo2_ecal_disconnect; - functions.get_changes = evo2_ecal_get_changes; - functions.commit = evo2_ecal_modify; - functions.sync_done = evo2_ecal_sync_done; + osync_objtype_sink_set_connect_func(sink, evo2_ecal_connect); + osync_objtype_sink_set_disconnect_func(sink, evo2_ecal_disconnect); + osync_objtype_sink_set_get_changes_func(sink, evo2_ecal_get_changes); + osync_objtype_sink_set_commit_func(sink, evo2_ecal_modify); + osync_objtype_sink_set_sync_done_func(sink, evo2_ecal_sync_done); osync_objtype_sink_enable_anchor(sink, TRUE); @@ -467,7 +465,7 @@ cal->sink = osync_objtype_sink_ref(sink); - osync_objtype_sink_set_functions(cal->sink, functions, cal); + osync_objtype_sink_set_userdata(cal->sink, cal); env->calendars = g_list_append(env->calendars, cal); return TRUE; |
From: <svn...@op...> - 2009-03-29 21:46:36
|
Author: dgollub Date: Sun Mar 29 23:46:29 2009 New Revision: 5433 URL: http://www.opensync.org/changeset/5433 Log: Ported file-sync plugin to OSyncObjTypeSinkFunctions API change (r5432) refs #1086 Modified: plugins/file-sync/src/file_sync.c Modified: plugins/file-sync/src/file_sync.c ============================================================================== --- plugins/file-sync/src/file_sync.c Sun Mar 29 23:44:10 2009 (r5432) +++ plugins/file-sync/src/file_sync.c Sun Mar 29 23:46:29 2009 (r5433) @@ -564,19 +564,16 @@ } /* All sinks have the same functions of course */ - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = osync_filesync_connect; - functions.get_changes = osync_filesync_get_changes; - functions.commit = osync_filesync_commit_change; - functions.read = osync_filesync_read; - functions.write = osync_filesync_write; - functions.sync_done = osync_filesync_sync_done; + osync_objtype_sink_set_connect_func(dir->sink, osync_filesync_connect); + osync_objtype_sink_set_get_changes_func(dir->sink, osync_filesync_get_changes); + osync_objtype_sink_set_commit_func(dir->sink, osync_filesync_commit_change); + osync_objtype_sink_set_read_func(dir->sink, osync_filesync_read); + osync_objtype_sink_set_write_func(dir->sink, osync_filesync_write); + osync_objtype_sink_set_sync_done_func(dir->sink, osync_filesync_sync_done); /* We pass the OSyncFileDir object to the sink, so we dont have to look it up * again once the functions are called */ - osync_objtype_sink_set_functions(dir->sink, functions, dir); - + osync_objtype_sink_set_userdata(dir->sink, dir); /* Request an anchor from the framework. */ osync_objtype_sink_enable_anchor(dir->sink, TRUE); |
From: <svn...@op...> - 2009-03-29 21:44:24
|
Author: dgollub Date: Sun Mar 29 23:44:10 2009 New Revision: 5432 URL: http://www.opensync.org/changeset/5432 Log: Dropped OSyncObjTypeSinkFunctions struct from public API. Replacement are newly introduced osync_objtype_sink_set_*_func() interfaces: osync_objtype_sink_set_batch_commit_func osync_objtype_sink_set_commit_func osync_objtype_sink_set_committed_all_func osync_objtype_sink_set_connect_done_func osync_objtype_sink_set_connect_func osync_objtype_sink_set_disconnect_func osync_objtype_sink_set_get_changes_func osync_objtype_sink_set_read_func osync_objtype_sink_set_sync_done_func osync_objtype_sink_set_write_func and osync_objtype_sink_set_userdata Porting example: -OSyncObjTypeSinkFunctions functions; -memset(&functions, 0, sizeof(functions)); -functions.connect = connect_error; -functions.disconnect = disconnect; -functions.get_changes = get_changes; - -osync_objtype_sink_set_functions(sink, functions, user_data); + +osync_objtype_sink_set_connect_func(sink, connect); +osync_objtype_sink_set_disconnect_func(sink, disconnect); +osync_objtype_sink_set_get_changes_func(sink, get_changes); + +osync_objtype_sink_set_userdata(sink, user_data); fixes #1086 Modified: trunk/docs/examples/plugins/src/plugin.c trunk/docs/examples/plugins/src/simple_plugin.c trunk/opensync.sym trunk/opensync/plugin/opensync_objtype_sink.c trunk/opensync/plugin/opensync_objtype_sink.h trunk/opensync/plugin/opensync_objtype_sink_internals.h trunk/tests/engine-tests/check_engine.c trunk/tests/engine-tests/check_engine_error.c trunk/tests/mock-plugin/mock_sync.c Modified: trunk/docs/examples/plugins/src/plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/plugin.c Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/docs/examples/plugins/src/plugin.c Sun Mar 29 23:44:10 2009 (r5432) @@ -326,19 +326,19 @@ } /* Every sink can have different functions ... */ - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect; - functions.disconnect = disconnect; - functions.get_changes = get_changes; - functions.commit = commit_change; - functions.sync_done = sync_done; + osync_objtype_sink_set_connect_func(sink, connect); + osync_objtype_sink_set_disconnect_func(sink, disconnect); + osync_objtype_sink_set_get_changes_func(sink, get_changes); + osync_objtype_sink_set_commit_func(sink, commit_change); + osync_objtype_sink_set_sync_done_func(sink, sync_done); - /* The last arguemnt is the userdata you get passed inside - * plugin sink functinos. + /* + * If you need plugin specific userdata passed to this + * plugin sink functions. You can set it with: + * + * osync_objtype_sink_set_userdata(sink, userdata_pointer); */ - osync_objtype_sink_set_functions(sink, functions, NULL); - + /* Request a Hahstable here - if you need it. * It will be later available via osync_objtype_sink_get_hashtable(OSyncObjTypeSink *) * in the plugin sink functions (e.g. connect, get_changes, commit, ...) Modified: trunk/docs/examples/plugins/src/simple_plugin.c ============================================================================== --- trunk/docs/examples/plugins/src/simple_plugin.c Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/docs/examples/plugins/src/simple_plugin.c Sun Mar 29 23:44:10 2009 (r5432) @@ -255,17 +255,18 @@ } /* Every sink can have different functions ... */ - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect; - functions.disconnect = disconnect; - functions.get_changes = get_changes; - functions.commit = commit_change; - functions.sync_done = sync_done; + osync_objtype_sink_set_connect_func(sink, connect); + osync_objtype_sink_set_disconnect_func(sink, disconnect); + osync_objtype_sink_set_get_changes_func(sink, get_changes); + osync_objtype_sink_set_commit_func(sink, commit_change); + osync_objtype_sink_set_sync_done_func(sink, sync_done); - /* We pass the OSyncFileDir object to the sink, so we dont have to look it up - * again once the functions are called */ - osync_objtype_sink_set_functions(sink, functions, NULL); + /* + * If you need plugin specific userdata passed to this + * plugin sink functions. You can set it with: + * + * osync_objtype_sink_set_userdata(sink, userdata_pointer); + */ } osync_list_free(list); Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/opensync.sym Sun Mar 29 23:44:10 2009 (r5432) @@ -392,22 +392,32 @@ osync_objtype_sink_remove_objformat_sink osync_objtype_sink_save_hashtable osync_objtype_sink_set_available +osync_objtype_sink_set_batch_commit_func osync_objtype_sink_set_batchcommit_timeout +osync_objtype_sink_set_commit_func osync_objtype_sink_set_commit_timeout +osync_objtype_sink_set_committed_all_func osync_objtype_sink_set_committedall_timeout +osync_objtype_sink_set_connect_done_func +osync_objtype_sink_set_connect_func osync_objtype_sink_set_connect_timeout +osync_objtype_sink_set_disconnect_func osync_objtype_sink_set_disconnect_timeout osync_objtype_sink_set_enabled -osync_objtype_sink_set_functions +osync_objtype_sink_set_get_changes_func osync_objtype_sink_set_getchanges osync_objtype_sink_set_getchanges_timeout osync_objtype_sink_set_name osync_objtype_sink_set_preferred_format osync_objtype_sink_set_read +osync_objtype_sink_set_read_func osync_objtype_sink_set_read_timeout osync_objtype_sink_set_slowsync +osync_objtype_sink_set_sync_done_func osync_objtype_sink_set_syncdone_timeout +osync_objtype_sink_set_userdata osync_objtype_sink_set_write +osync_objtype_sink_set_write_func osync_objtype_sink_set_write_timeout osync_objtype_sink_sync_done osync_objtype_sink_unref Modified: trunk/opensync/plugin/opensync_objtype_sink.c ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.c Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/opensync/plugin/opensync_objtype_sink.c Sun Mar 29 23:44:10 2009 (r5432) @@ -232,22 +232,6 @@ osync_objformat_sink_unref(objformatsink); } -void osync_objtype_sink_set_functions(OSyncObjTypeSink *sink, OSyncObjTypeSinkFunctions functions, void *userdata) -{ - osync_assert(sink); - sink->functions = functions; - sink->userdata = userdata; - - if (functions.read) - sink->func_read = TRUE; - - if (functions.get_changes) - sink->func_getchanges = TRUE; - - if (functions.write) - sink->func_write = TRUE; -} - osync_bool osync_objtype_sink_get_function_read(OSyncObjTypeSink *sink) { osync_assert(sink); @@ -833,3 +817,78 @@ return FALSE; } +void osync_objtype_sink_set_userdata(OSyncObjTypeSink *sink, void *userdata) +{ + osync_return_if_fail(sink); + sink->userdata = userdata; +} + +void osync_objtype_sink_set_connect_func(OSyncObjTypeSink *sink, OSyncSinkConnectFn connect_func) +{ + osync_return_if_fail(sink); + sink->functions.connect = connect_func; +} + +void osync_objtype_sink_set_connect_done_func(OSyncObjTypeSink *sink, OSyncSinkConnectDoneFn connect_done_func) +{ + osync_return_if_fail(sink); + sink->functions.connect_done = connect_done_func; +} + +void osync_objtype_sink_set_get_changes_func(OSyncObjTypeSink *sink, OSyncSinkGetChangesFn get_changes_func) +{ + osync_return_if_fail(sink); + sink->functions.get_changes = get_changes_func; + + if (sink->functions.get_changes) + sink->func_getchanges = TRUE; +} + +void osync_objtype_sink_set_commit_func(OSyncObjTypeSink *sink, OSyncSinkCommitFn commit_func) +{ + osync_return_if_fail(sink); + sink->functions.commit = commit_func; +} + +void osync_objtype_sink_set_write_func(OSyncObjTypeSink *sink, OSyncSinkWriteFn write_func) +{ + osync_return_if_fail(sink); + sink->functions.write = write_func; + + if (sink->functions.write) + sink->func_write = TRUE; +} + +void osync_objtype_sink_set_committed_all_func(OSyncObjTypeSink *sink, OSyncSinkCommittedAllFn committed_all_func) +{ + osync_return_if_fail(sink); + sink->functions.committed_all = committed_all_func; +} + +void osync_objtype_sink_set_read_func(OSyncObjTypeSink *sink, OSyncSinkReadFn read_func) +{ + osync_return_if_fail(sink); + sink->functions.read = read_func; + + if (sink->functions.read) + sink->func_read = TRUE; +} + +void osync_objtype_sink_set_batch_commit_func(OSyncObjTypeSink *sink, OSyncSinkBatchCommitFn batch_commit_func) +{ + osync_return_if_fail(sink); + sink->functions.batch_commit = batch_commit_func; +} + +void osync_objtype_sink_set_sync_done_func(OSyncObjTypeSink *sink, OSyncSinkSyncDoneFn sync_done_func) +{ + osync_return_if_fail(sink); + sink->functions.sync_done = sync_done_func; +} + +void osync_objtype_sink_set_disconnect_func(OSyncObjTypeSink *sink, OSyncSinkConnectFn disconnect_func) +{ + osync_return_if_fail(sink); + sink->functions.disconnect = disconnect_func; +} + Modified: trunk/opensync/plugin/opensync_objtype_sink.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.h Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/opensync/plugin/opensync_objtype_sink.h Sun Mar 29 23:44:10 2009 (r5432) @@ -40,19 +40,6 @@ typedef void (* OSyncSinkSyncDoneFn) (OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data); typedef void (* OSyncSinkConnectDoneFn) (OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync, void *data); -typedef struct OSyncObjTypeSinkFunctions { - OSyncSinkConnectFn connect; - OSyncSinkDisconnectFn disconnect; - OSyncSinkGetChangesFn get_changes; - OSyncSinkCommitFn commit; - OSyncSinkWriteFn write; - OSyncSinkCommittedAllFn committed_all; - OSyncSinkReadFn read; - OSyncSinkBatchCommitFn batch_commit; - OSyncSinkSyncDoneFn sync_done; - OSyncSinkConnectDoneFn connect_done; -} OSyncObjTypeSinkFunctions; - /** @brief Creates a new main sink * * Main sink is objtype neutral and should be used for object type @@ -215,22 +202,6 @@ */ OSYNC_EXPORT void osync_objtype_sink_remove_objformat_sink(OSyncObjTypeSink *sink, OSyncObjFormatSink *objformatsink); - -/** @brief Sets the sink functions and user data - * - * Sets the functions used by the sink, as well as a user data pointer that - * you can retrieve within the functions. In most cases you will be able to - * share the same functions between multiple sinks and just have different - * user data for each one. - * - * @param sink Pointer to the sink - * @param functions struct containing pointers to the sink functions - * @param userdata user data pointer that is passed to all objtype sink functions like connect(), commit(), ... - * - */ -OSYNC_EXPORT void osync_objtype_sink_set_functions(OSyncObjTypeSink *sink, OSyncObjTypeSinkFunctions functions, void *userdata); - - /** @brief Checks if a sink is enabled * * @param sink Pointer to the sink @@ -548,6 +519,31 @@ */ OSYNC_EXPORT osync_bool osync_objtype_sink_save_hashtable(OSyncObjTypeSink *sink, OSyncError **error); + +OSYNC_EXPORT void osync_objtype_sink_set_userdata(OSyncObjTypeSink *sink, void *userdata); + +OSYNC_EXPORT void osync_objtype_sink_set_connect_func(OSyncObjTypeSink *sink, OSyncSinkConnectFn connect_func); + +OSYNC_EXPORT void osync_objtype_sink_set_connect_done_func(OSyncObjTypeSink *sink, OSyncSinkConnectDoneFn connect_done_func); + +OSYNC_EXPORT void osync_objtype_sink_set_get_changes_func(OSyncObjTypeSink *sink, OSyncSinkGetChangesFn get_changes_func); + +OSYNC_EXPORT void osync_objtype_sink_set_commit_func(OSyncObjTypeSink *sink, OSyncSinkCommitFn commit_func); + +OSYNC_EXPORT void osync_objtype_sink_set_write_func(OSyncObjTypeSink *sink, OSyncSinkWriteFn write_func); + +OSYNC_EXPORT void osync_objtype_sink_set_committed_all_func(OSyncObjTypeSink *sink, OSyncSinkCommittedAllFn committed_all_func); + +OSYNC_EXPORT void osync_objtype_sink_set_read_func(OSyncObjTypeSink *sink, OSyncSinkReadFn read_func); + +OSYNC_EXPORT void osync_objtype_sink_set_batch_commit_func(OSyncObjTypeSink *sink, OSyncSinkBatchCommitFn batch_commit_func); + +OSYNC_EXPORT void osync_objtype_sink_set_sync_done_func(OSyncObjTypeSink *sink, OSyncSinkSyncDoneFn sync_done_func); + +OSYNC_EXPORT void osync_objtype_sink_set_connect_done_func(OSyncObjTypeSink *sink, OSyncSinkConnectDoneFn connect_done_func); + +OSYNC_EXPORT void osync_objtype_sink_set_disconnect_func(OSyncObjTypeSink *sink, OSyncSinkConnectFn disconnect_func); + /*@}*/ #endif /* _OPENSYNC_OBJTYPE_SINK_H_ */ Modified: trunk/opensync/plugin/opensync_objtype_sink_internals.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink_internals.h Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/opensync/plugin/opensync_objtype_sink_internals.h Sun Mar 29 23:44:10 2009 (r5432) @@ -21,6 +21,8 @@ #ifndef _OPENSYNC_OBJTYPE_SINK_INTERNALS_H_ #define _OPENSYNC_OBJTYPE_SINK_INTERNALS_H_ +#include "opensync_objtype_sink.h" + /** * @defgroup OSyncObjTypeSinkInternalAPI OpenSync Object Type Sink Internals * @ingroup OSyncPluginPrivate @@ -30,6 +32,18 @@ /*@{*/ +typedef struct OSyncObjTypeSinkFunctions { + OSyncSinkConnectFn connect; + OSyncSinkDisconnectFn disconnect; + OSyncSinkGetChangesFn get_changes; + OSyncSinkCommitFn commit; + OSyncSinkWriteFn write; + OSyncSinkCommittedAllFn committed_all; + OSyncSinkReadFn read; + OSyncSinkBatchCommitFn batch_commit; + OSyncSinkSyncDoneFn sync_done; + OSyncSinkConnectDoneFn connect_done; +} OSyncObjTypeSinkFunctions; /** @brief Check if sink has an anchor request. * Modified: trunk/tests/engine-tests/check_engine.c ============================================================================== --- trunk/tests/engine-tests/check_engine.c Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/tests/engine-tests/check_engine.c Sun Mar 29 23:44:10 2009 (r5432) @@ -210,13 +210,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect1; - functions.disconnect = disconnect; - functions.get_changes = get_changes; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, connect1); + osync_objtype_sink_set_disconnect_func(sink, disconnect); + osync_objtype_sink_set_get_changes_func(sink, get_changes); + + /* ObjTypeSink port - functions and userdata never got set! */ + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -504,13 +504,12 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect2; - functions.disconnect = disconnect2; - functions.get_changes = get_changes2; + osync_objtype_sink_set_connect_func(sink, connect2); + osync_objtype_sink_set_disconnect_func(sink, disconnect2); + osync_objtype_sink_set_get_changes_func(sink, get_changes2); + + osync_objtype_sink_set_userdata(sink, env); - osync_objtype_sink_set_functions(sink, functions, env); osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -521,13 +520,14 @@ format_sink = osync_objformat_sink_new("vcard", error); osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); + + osync_objtype_sink_set_connect_func(sink, connect2); + osync_objtype_sink_set_disconnect_func(sink, disconnect2); + osync_objtype_sink_set_get_changes_func(sink, get_changes2); + + osync_objtype_sink_set_userdata(sink, env); - memset(&functions, 0, sizeof(functions)); - functions.connect = connect2; - functions.disconnect = disconnect2; - functions.get_changes = get_changes2; - osync_objtype_sink_set_functions(sink, functions, env); osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -539,12 +539,12 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - memset(&functions, 0, sizeof(functions)); - functions.connect = connect2; - functions.disconnect = disconnect2; - functions.get_changes = get_changes2; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, connect2); + osync_objtype_sink_set_disconnect_func(sink, disconnect2); + osync_objtype_sink_set_get_changes_func(sink, get_changes2); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -553,12 +553,12 @@ if (!sink) goto error; - memset(&functions, 0, sizeof(functions)); - functions.connect = main_connect2; - functions.disconnect = main_disconnect2; - functions.get_changes = main_get_changes2; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, main_connect2); + osync_objtype_sink_set_disconnect_func(sink, main_disconnect2); + osync_objtype_sink_set_get_changes_func(sink, main_get_changes2); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_set_main_sink(info, sink); osync_objtype_sink_unref(sink); @@ -908,14 +908,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect3; - functions.disconnect = disconnect3; - functions.get_changes = get_changes3; - functions.sync_done = sync_done3; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, connect3); + osync_objtype_sink_set_disconnect_func(sink, disconnect3); + osync_objtype_sink_set_get_changes_func(sink, get_changes3); + osync_objtype_sink_set_sync_done_func(sink, sync_done3); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -926,14 +925,14 @@ format_sink = osync_objformat_sink_new("vcard", error); osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - - memset(&functions, 0, sizeof(functions)); - functions.connect = connect3; - functions.disconnect = disconnect3; - functions.get_changes = get_changes3; - functions.sync_done = sync_done3; - - osync_objtype_sink_set_functions(sink, functions, env); + + osync_objtype_sink_set_connect_func(sink, connect3); + osync_objtype_sink_set_disconnect_func(sink, disconnect3); + osync_objtype_sink_set_get_changes_func(sink, get_changes3); + osync_objtype_sink_set_sync_done_func(sink, sync_done3); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -945,13 +944,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - memset(&functions, 0, sizeof(functions)); - functions.connect = connect3; - functions.disconnect = disconnect3; - functions.get_changes = get_changes3; - functions.sync_done = sync_done3; + osync_objtype_sink_set_connect_func(sink, connect3); + osync_objtype_sink_set_disconnect_func(sink, disconnect3); + osync_objtype_sink_set_get_changes_func(sink, get_changes3); + osync_objtype_sink_set_sync_done_func(sink, sync_done3); + + osync_objtype_sink_set_userdata(sink, env); - osync_objtype_sink_set_functions(sink, functions, env); osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -960,13 +959,13 @@ if (!sink) goto error; - memset(&functions, 0, sizeof(functions)); - functions.connect = main_connect3; - functions.disconnect = main_disconnect3; - functions.get_changes = main_get_changes3; - functions.sync_done = main_sync_done3; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, main_connect3); + osync_objtype_sink_set_disconnect_func(sink, main_disconnect3); + osync_objtype_sink_set_get_changes_func(sink, main_get_changes3); + osync_objtype_sink_set_sync_done_func(sink, main_sync_done3); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_set_main_sink(info, sink); osync_objtype_sink_unref(sink); @@ -1151,14 +1150,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect3; - functions.disconnect = disconnect3; - functions.get_changes = get_changes3; - functions.sync_done = sync_done3; + osync_objtype_sink_set_connect_func(sink, connect3); + osync_objtype_sink_set_disconnect_func(sink, disconnect3); + osync_objtype_sink_set_get_changes_func(sink, get_changes3); + osync_objtype_sink_set_sync_done_func(sink, sync_done3); + + osync_objtype_sink_set_userdata(sink, env); - osync_objtype_sink_set_functions(sink, functions, env); osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -1170,13 +1168,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - memset(&functions, 0, sizeof(functions)); - functions.connect = connect3; - functions.disconnect = disconnect3; - functions.get_changes = get_changes3; - functions.sync_done = sync_done3; + osync_objtype_sink_set_connect_func(sink, connect3); + osync_objtype_sink_set_disconnect_func(sink, disconnect3); + osync_objtype_sink_set_get_changes_func(sink, get_changes3); + osync_objtype_sink_set_sync_done_func(sink, sync_done3); + + osync_objtype_sink_set_userdata(sink, env); - osync_objtype_sink_set_functions(sink, functions, env); osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -1188,13 +1186,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - memset(&functions, 0, sizeof(functions)); - functions.connect = connect3; - functions.disconnect = disconnect3; - functions.get_changes = get_changes3; - functions.sync_done = sync_done3; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, connect3); + osync_objtype_sink_set_disconnect_func(sink, disconnect3); + osync_objtype_sink_set_get_changes_func(sink, get_changes3); + osync_objtype_sink_set_sync_done_func(sink, sync_done3); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -1203,13 +1201,13 @@ if (!sink) goto error; - memset(&functions, 0, sizeof(functions)); - functions.connect = main_connect3; - functions.disconnect = main_disconnect4; - functions.get_changes = main_get_changes3; - functions.sync_done = main_sync_done3; + osync_objtype_sink_set_connect_func(sink, main_connect3); + osync_objtype_sink_set_disconnect_func(sink, main_disconnect4); + osync_objtype_sink_set_get_changes_func(sink, main_get_changes3); + osync_objtype_sink_set_sync_done_func(sink, main_sync_done3); + + osync_objtype_sink_set_userdata(sink, env); - osync_objtype_sink_set_functions(sink, functions, env); osync_plugin_info_set_main_sink(info, sink); osync_objtype_sink_unref(sink); @@ -1478,14 +1476,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect5; - functions.disconnect = disconnect5; - functions.get_changes = get_changes5; - functions.commit = commit_change5; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, connect5); + osync_objtype_sink_set_disconnect_func(sink, disconnect5); + osync_objtype_sink_set_get_changes_func(sink, get_changes5); + osync_objtype_sink_set_commit_func(sink, commit_change5); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -1684,14 +1681,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect5; - functions.disconnect = disconnect5; - functions.get_changes = get_changes6; - functions.commit = commit_change5; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, connect5); + osync_objtype_sink_set_disconnect_func(sink, disconnect5); + osync_objtype_sink_set_get_changes_func(sink, get_changes6); + osync_objtype_sink_set_commit_func(sink, commit_change5); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); @@ -1888,14 +1884,13 @@ osync_objtype_sink_add_objformat_sink(sink, format_sink); osync_objformat_sink_unref(format_sink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect5; - functions.disconnect = disconnect5; - functions.get_changes = get_changes7; - functions.commit = commit_change5; - - osync_objtype_sink_set_functions(sink, functions, env); + osync_objtype_sink_set_connect_func(sink, connect5); + osync_objtype_sink_set_disconnect_func(sink, disconnect5); + osync_objtype_sink_set_get_changes_func(sink, get_changes7); + osync_objtype_sink_set_commit_func(sink, commit_change5); + + osync_objtype_sink_set_userdata(sink, env); + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); Modified: trunk/tests/engine-tests/check_engine_error.c ============================================================================== --- trunk/tests/engine-tests/check_engine_error.c Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/tests/engine-tests/check_engine_error.c Sun Mar 29 23:44:10 2009 (r5432) @@ -137,13 +137,13 @@ OSyncObjFormatSink *formatsink = osync_objformat_sink_new("mockformat1", error); osync_objtype_sink_add_objformat_sink(sink, formatsink); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - functions.connect = connect_error; - functions.disconnect = disconnect; - functions.get_changes = get_changes; - - osync_objtype_sink_set_functions(sink, functions, NULL); + + osync_objtype_sink_set_connect_func(sink, connect_error); + osync_objtype_sink_set_disconnect_func(sink, disconnect); + osync_objtype_sink_set_get_changes_func(sink, get_changes); + + /* No sink userdata */ + osync_plugin_info_add_objtype(info, sink); osync_objtype_sink_unref(sink); Modified: trunk/tests/mock-plugin/mock_sync.c ============================================================================== --- trunk/tests/mock-plugin/mock_sync.c Sun Mar 29 20:29:36 2009 (r5431) +++ trunk/tests/mock-plugin/mock_sync.c Sun Mar 29 23:44:10 2009 (r5432) @@ -602,13 +602,11 @@ if (mock_get_error(info->memberid, "MAINSINK_CONNECT")) { env->mainsink = osync_objtype_main_sink_new(error); - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); + osync_objtype_sink_set_connect_func(env->mainsink, mock_connect); + osync_objtype_sink_set_disconnect_func(env->mainsink, mock_mainsink_disconnect); - functions.connect = mock_connect; - functions.disconnect = mock_mainsink_disconnect; + osync_objtype_sink_set_userdata(env->mainsink, env); - osync_objtype_sink_set_functions(env->mainsink, functions, env); osync_plugin_info_set_main_sink(info, env->mainsink); } @@ -653,33 +651,29 @@ /* Sanity check for connect_done */ dir->connect_done = TRUE; - /* All sinks have the same functions of course */ - OSyncObjTypeSinkFunctions functions; - memset(&functions, 0, sizeof(functions)); - if (!mock_get_error(info->memberid, "MAINSINK_CONNECT")) { - functions.connect = mock_connect; - functions.connect_done = mock_connect_done; - functions.disconnect = mock_disconnect; + osync_objtype_sink_set_connect_func(sink, mock_connect); + osync_objtype_sink_set_connect_done_func(sink, mock_connect_done); + osync_objtype_sink_set_disconnect_func(sink, mock_disconnect); } - functions.get_changes = mock_get_changes; + osync_objtype_sink_set_get_changes_func(sink, mock_get_changes); //Rewrite the batch commit functions so we can enable them if necessary if (mock_get_error(info->memberid, "BATCH_COMMIT")) { osync_trace(TRACE_INTERNAL, "Enabling batch_commit on %p:%s", sink, osync_objtype_sink_get_name(sink) ? osync_objtype_sink_get_name(sink) : "None"); - functions.batch_commit = mock_batch_commit; + osync_objtype_sink_set_batch_commit_func(sink, mock_batch_commit); } else { - functions.committed_all = mock_committed_all; - functions.commit = mock_commit_change; + osync_objtype_sink_set_committed_all_func(sink, mock_committed_all); + osync_objtype_sink_set_commit_func(sink, mock_commit_change); } - functions.read = mock_read; - functions.write = mock_write; - functions.sync_done = mock_sync_done; + osync_objtype_sink_set_read_func(sink, mock_read); + osync_objtype_sink_set_write_func(sink, mock_write); + osync_objtype_sink_set_sync_done_func(sink, mock_sync_done); /* We pass the MockDir object to the sink, so we dont have to look it up * again once the functions are called */ - osync_objtype_sink_set_functions(sink, functions, dir); + osync_objtype_sink_set_userdata(sink, dir); /* Request an Anchor */ osync_objtype_sink_enable_anchor(sink, TRUE); |
From: <svn...@op...> - 2009-03-29 18:29:42
|
Author: bricks Date: Sun Mar 29 20:29:36 2009 New Revision: 5431 URL: http://www.opensync.org/changeset/5431 Log: fixed symbol test again Modified: trunk/opensync.sym Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Sun Mar 29 20:20:04 2009 (r5430) +++ trunk/opensync.sym Sun Mar 29 20:29:36 2009 (r5431) @@ -250,10 +250,9 @@ osync_mapping_entry_set_uid osync_mapping_entry_unref osync_mapping_find_entry_by_member_id +osync_mapping_get_entries osync_mapping_get_id osync_mapping_new -osync_mapping_nth_entry -osync_mapping_num_entries osync_mapping_ref osync_mapping_remove_entry osync_mapping_set_id @@ -261,11 +260,10 @@ osync_mapping_table_close osync_mapping_table_find_mapping osync_mapping_table_flush +osync_mapping_table_get_mappings osync_mapping_table_get_next_id osync_mapping_table_load osync_mapping_table_new -osync_mapping_table_nth_mapping -osync_mapping_table_num_mappings osync_mapping_table_ref osync_mapping_table_remove_mapping osync_mapping_table_unref @@ -389,8 +387,6 @@ osync_objtype_sink_load_anchor osync_objtype_sink_load_hashtable osync_objtype_sink_new -osync_objtype_sink_nth_objformat_sink -osync_objtype_sink_num_objformat_sinks osync_objtype_sink_read_change osync_objtype_sink_ref osync_objtype_sink_remove_objformat_sink |
From: <svn...@op...> - 2009-03-29 18:20:10
|
Author: bricks Date: Sun Mar 29 20:20:04 2009 New Revision: 5430 URL: http://www.opensync.org/changeset/5430 Log: OSyncObjTypeSink had a osync_objtype_sink_get_objformat_sinks functions Changed this function to return a copy of the list Therefore other functions which depend on the list had to be changed too removed osync_objtype_sink_num_objformat_sinks and osync_objtype_sink_nth_objformat_sink from public api refs #975 Modified: trunk/opensync/engine/opensync_mapping_entry_engine.c trunk/opensync/group/opensync_member.c trunk/opensync/group/opensync_member.h trunk/opensync/plugin/opensync_objtype_sink.c trunk/opensync/plugin/opensync_objtype_sink.h trunk/opensync/plugin/opensync_objtype_sink_internals.h trunk/tests/client-tests/check_proxy.c Modified: trunk/opensync/engine/opensync_mapping_entry_engine.c ============================================================================== --- trunk/opensync/engine/opensync_mapping_entry_engine.c Sun Mar 29 19:48:30 2009 (r5429) +++ trunk/opensync/engine/opensync_mapping_entry_engine.c Sun Mar 29 20:20:04 2009 (r5430) @@ -244,7 +244,7 @@ OSyncObjFormatSink *formatsink = osync_objtype_sink_find_objformat_sink(objtype_sink, format); osync_converter_path_set_config(path, osync_objformat_sink_get_config(formatsink)); } - + if (!osync_format_env_convert(formatenv, path, osync_change_get_data(entry_engine->change), error)) { goto error_free_path; } @@ -257,12 +257,14 @@ osync_change_set_objtype(change, objtype); osync_free(objtype); - + osync_list_free(format_sinks); + return TRUE; error_free_path: osync_converter_path_unref(path); error_free_objtype: + osync_list_free(format_sinks); osync_free(objtype); /*error:*/ return FALSE; Modified: trunk/opensync/group/opensync_member.c ============================================================================== --- trunk/opensync/group/opensync_member.c Sun Mar 29 19:48:30 2009 (r5429) +++ trunk/opensync/group/opensync_member.c Sun Mar 29 20:20:04 2009 (r5430) @@ -684,12 +684,7 @@ OSyncObjTypeSink *sink = o->data; OSyncList *format_sinks = osync_objtype_sink_get_objformat_sinks(sink); - /* Use a copy of the list to allow full processing without impact - * on the orignal ObjFormatSink list of OSyncObjTypeSink - */ - OSyncList *copy_format_sinks = osync_list_copy(format_sinks); - - list = osync_list_concat(list, copy_format_sinks); + list = osync_list_concat(list, format_sinks); } return list; @@ -702,8 +697,9 @@ for (o = member->objtypes; o; o = o->next) { OSyncObjTypeSink *sink = o->data; OSyncList *format_sinks = osync_objtype_sink_get_objformat_sinks(sink); - for (; format_sinks; format_sinks = format_sinks->next) { - OSyncObjFormatSink *format_sink = format_sinks->data; + OSyncList *fs = NULL; + for (fs = format_sinks; fs; fs = fs->next) { + OSyncObjFormatSink *format_sink = fs->data; const char *objformat_name = osync_objformat_sink_get_objformat(format_sink); OSyncObjFormat *sourceformat = osync_format_env_find_objformat(formatenv, objformat_name); Modified: trunk/opensync/group/opensync_member.h ============================================================================== --- trunk/opensync/group/opensync_member.h Sun Mar 29 19:48:30 2009 (r5429) +++ trunk/opensync/group/opensync_member.h Sun Mar 29 20:20:04 2009 (r5430) @@ -249,9 +249,12 @@ /** @brief List of all available object formats for a specifc object type of this member * + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. + * * @param member The member pointer * @param objtype The searched object type - * @param error Pointer to a error + * @param error Pointer to an error * @return List of all object formats of a specific object type of the member * */ Modified: trunk/opensync/plugin/opensync_objtype_sink.c ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.c Sun Mar 29 19:48:30 2009 (r5429) +++ trunk/opensync/plugin/opensync_objtype_sink.c Sun Mar 29 20:20:04 2009 (r5430) @@ -209,7 +209,7 @@ OSyncList *osync_objtype_sink_get_objformat_sinks(OSyncObjTypeSink *sink) { osync_assert(sink); - return sink->objformatsinks; + return osync_list_copy(sink->objformatsinks); } void osync_objtype_sink_add_objformat_sink(OSyncObjTypeSink *sink, OSyncObjFormatSink *objformatsink) Modified: trunk/opensync/plugin/opensync_objtype_sink.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink.h Sun Mar 29 19:48:30 2009 (r5429) +++ trunk/opensync/plugin/opensync_objtype_sink.h Sun Mar 29 20:20:04 2009 (r5430) @@ -179,23 +179,16 @@ */ OSYNC_EXPORT void osync_objtype_sink_set_preferred_format(OSyncObjTypeSink *sink, const char *preferred_format); - -/** @brief Returns the number of object formats in the sink - * - * @param sink Pointer to the sink - * @returns the number of object formats in the sink +/** + * @brief Returns a OSyncList that contains the OSyncObjFormatSinks of this objtype sink * - */ -OSYNC_EXPORT unsigned int osync_objtype_sink_num_objformat_sinks(OSyncObjTypeSink *sink); - -/** @brief Returns the nth object format in the sink - * - * @param sink Pointer to the sink - * @param nth the index of the object format to return - * @returns the name of the object format at the specified index + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. * + * @param sink A pointer to a OSyncObjTypeSink + * @return A shallow copy of the internal list of OSyncObjFormatSinks */ -OSYNC_EXPORT OSyncObjFormatSink *osync_objtype_sink_nth_objformat_sink(OSyncObjTypeSink *sink, unsigned int nth); +OSYNC_EXPORT OSyncList *osync_objtype_sink_get_objformat_sinks(OSyncObjTypeSink *sink); /** @brief Finds the objformat sink for the corresponding objformat * @@ -206,14 +199,6 @@ */ OSYNC_EXPORT OSyncObjFormatSink *osync_objtype_sink_find_objformat_sink(OSyncObjTypeSink *sink, OSyncObjFormat *objformat); -/** @brief Get list of object format sinks - * - * @param sink Pointer to the sink - * @returns List of object format sinks - * - */ -OSYNC_EXPORT OSyncList *osync_objtype_sink_get_objformat_sinks(OSyncObjTypeSink *sink); - /** @brief Adds an object format sink to the sink * * @param sink Pointer to the sink Modified: trunk/opensync/plugin/opensync_objtype_sink_internals.h ============================================================================== --- trunk/opensync/plugin/opensync_objtype_sink_internals.h Sun Mar 29 19:48:30 2009 (r5429) +++ trunk/opensync/plugin/opensync_objtype_sink_internals.h Sun Mar 29 20:20:04 2009 (r5430) @@ -18,8 +18,8 @@ * */ -#ifndef OPENSYNC_OBJTYPE_SINK_INTERNALS_H_ -#define OPENSYNC_OBJTYPE_SINK_INTERNALS_H_ +#ifndef _OPENSYNC_OBJTYPE_SINK_INTERNALS_H_ +#define _OPENSYNC_OBJTYPE_SINK_INTERNALS_H_ /** * @defgroup OSyncObjTypeSinkInternalAPI OpenSync Object Type Sink Internals @@ -306,7 +306,25 @@ */ osync_bool osync_objtype_sink_get_slowsync(OSyncObjTypeSink *sink); +/** @brief Returns the number of object formats in the sink + * + * @param sink Pointer to the sink + * @returns the number of object formats in the sink + * + */ +OSYNC_TEST_EXPORT unsigned int osync_objtype_sink_num_objformat_sinks(OSyncObjTypeSink *sink); + +/** @brief Returns the nth object format in the sink + * + * @param sink Pointer to the sink + * @param nth the index of the object format to return + * @returns the name of the object format at the specified index + * + */ +OSYNC_TEST_EXPORT OSyncObjFormatSink *osync_objtype_sink_nth_objformat_sink(OSyncObjTypeSink *sink, unsigned int nth); + + /*@}*/ -#endif /*OPENSYNC_SINK_INTERNALS_H_*/ +#endif /* _OPENSYNC_SINK_INTERNALS_H_*/ Modified: trunk/tests/client-tests/check_proxy.c ============================================================================== --- trunk/tests/client-tests/check_proxy.c Sun Mar 29 19:48:30 2009 (r5429) +++ trunk/tests/client-tests/check_proxy.c Sun Mar 29 20:20:04 2009 (r5430) @@ -5,6 +5,7 @@ #include <opensync/opensync-plugin.h> #include "opensync/client/opensync_client_proxy_internals.h" +#include "opensync/plugin/opensync_objtype_sink_internals.h" START_TEST (proxy_new) { |
From: <svn...@op...> - 2009-03-29 17:48:36
|
Author: bricks Date: Sun Mar 29 19:48:30 2009 New Revision: 5429 URL: http://www.opensync.org/changeset/5429 Log: changed list pattern for all mapping related interfaces refs #975 Modified: trunk/opensync/engine/opensync_obj_engine.c trunk/opensync/mapping/opensync_mapping.c trunk/opensync/mapping/opensync_mapping.h trunk/opensync/mapping/opensync_mapping_internals.h trunk/opensync/mapping/opensync_mapping_table.c trunk/opensync/mapping/opensync_mapping_table.h trunk/opensync/mapping/opensync_mapping_table_internals.h trunk/tests/support.c Modified: trunk/opensync/engine/opensync_obj_engine.c ============================================================================== --- trunk/opensync/engine/opensync_obj_engine.c Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/opensync/engine/opensync_obj_engine.c Sun Mar 29 19:48:30 2009 (r5429) @@ -46,6 +46,7 @@ #include "client/opensync_client_proxy_internals.h" #include "group/opensync_member_internals.h" #include "format/opensync_objformat_internals.h" +#include "mapping/opensync_mapping_table_internals.h" OSyncMappingEngine *_osync_obj_engine_create_mapping_engine(OSyncObjEngine *engine, OSyncError **error) { @@ -618,11 +619,13 @@ static osync_bool _create_mapping_engines(OSyncObjEngine *engine, OSyncError **error) { - unsigned int i = 0; osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, engine, error); - for (i = 0; i < osync_mapping_table_num_mappings(engine->mapping_table); i++) { - OSyncMapping *mapping = osync_mapping_table_nth_mapping(engine->mapping_table, i); + OSyncList *mappings = osync_mapping_table_get_mappings(engine->mapping_table); + OSyncList *m = NULL; + + for (m = mappings; m; m = m->next) { + OSyncMapping *mapping = (OSyncMapping*)m->data; OSyncMappingEngine *mapping_engine = osync_mapping_engine_new(engine, mapping, error); if (!mapping_engine) @@ -631,10 +634,12 @@ engine->mapping_engines = osync_list_append(engine->mapping_engines, mapping_engine); } + osync_list_free(mappings); osync_trace(TRACE_EXIT, "%s", __func__); return TRUE; error: + osync_list_free(mappings); osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error)); return FALSE; } Modified: trunk/opensync/mapping/opensync_mapping.c ============================================================================== --- trunk/opensync/mapping/opensync_mapping.c Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/opensync/mapping/opensync_mapping.c Sun Mar 29 19:48:30 2009 (r5429) @@ -131,3 +131,7 @@ osync_assert(mapping); return osync_list_nth_data(mapping->entries, nth); } + +OSyncList *osync_mapping_get_entries(OSyncMapping *mapping) { + return osync_list_copy(mapping->entries); +} Modified: trunk/opensync/mapping/opensync_mapping.h ============================================================================== --- trunk/opensync/mapping/opensync_mapping.h Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/opensync/mapping/opensync_mapping.h Sun Mar 29 19:48:30 2009 (r5429) @@ -18,8 +18,8 @@ * */ -#ifndef OPENSYNC_MAPPING_H_ -#define OPENSYNC_MAPPING_H_ +#ifndef _OPENSYNC_MAPPING_H_ +#define _OPENSYNC_MAPPING_H_ /** * @defgroup OSyncMapping OpenSync Mapping Module @@ -71,22 +71,16 @@ */ OSYNC_EXPORT void osync_mapping_set_id(OSyncMapping *mapping, long long int id); - -/** - * @brief Get the number of entries in a mapping - * @param mapping Pointer to a mapping object - * @returns the number of entries in the mapping - */ -OSYNC_EXPORT unsigned int osync_mapping_num_entries(OSyncMapping *mapping); - /** - * @brief Get the nth entry in a mapping - * @param mapping Pointer to a mapping object - * @param nth the index of the entry to get - * @returns the nth entry in the mapping or NULL in case of error + * @brief Returns a OSyncList that contains the OSyncMappingEntries of this mapping + * + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. + * + * @param mapping A pointer to a OSyncMapping + * @return A shallow copy of the internal list of OSyncMappingEntries */ -OSYNC_EXPORT OSyncMappingEntry *osync_mapping_nth_entry(OSyncMapping *mapping, unsigned int nth); - +OSYNC_EXPORT OSyncList *osync_mapping_get_entries(OSyncMapping *mapping); /** * @brief Add an entry to a mapping @@ -113,4 +107,4 @@ /*@}*/ -#endif /*OPENSYNC_MAPPING_H_*/ +#endif /* _OPENSYNC_MAPPING_H_*/ Modified: trunk/opensync/mapping/opensync_mapping_internals.h ============================================================================== --- trunk/opensync/mapping/opensync_mapping_internals.h Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/opensync/mapping/opensync_mapping_internals.h Sun Mar 29 19:48:30 2009 (r5429) @@ -18,8 +18,8 @@ * */ -#ifndef OPENSYNC_MAPPING_INTERNALS_H_ -#define OPENSYNC_MAPPING_INTERNALS_H_ +#ifndef _OPENSYNC_MAPPING_INTERNALS_H_ +#define _OPENSYNC_MAPPING_INTERNALS_H_ /** * @defgroup OSyncMappingPrivate OpenSync Mapping Module Private @@ -43,6 +43,22 @@ OSyncList *entries; }; +/** + * @brief Get the number of entries in a mapping + * @param mapping Pointer to a mapping object + * @returns the number of entries in the mapping + */ +OSYNC_TEST_EXPORT unsigned int osync_mapping_num_entries(OSyncMapping *mapping); + +/** + * @brief Get the nth entry in a mapping + * @param mapping Pointer to a mapping object + * @param nth the index of the entry to get + * @returns the nth entry in the mapping or NULL in case of error + */ +OSYNC_TEST_EXPORT OSyncMappingEntry *osync_mapping_nth_entry(OSyncMapping *mapping, unsigned int nth); + + /*@}*/ -#endif /*OPENSYNC_MAPPING_INTERNALS_H_*/ +#endif /* _OPENSYNC_MAPPING_INTERNALS_H_*/ Modified: trunk/opensync/mapping/opensync_mapping_table.c ============================================================================== --- trunk/opensync/mapping/opensync_mapping_table.c Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/opensync/mapping/opensync_mapping_table.c Sun Mar 29 19:48:30 2009 (r5429) @@ -226,3 +226,6 @@ return new_id; } +OSyncList *osync_mapping_table_get_mappings(OSyncMappingTable *table) { + return osync_list_copy(table->mappings); +} Modified: trunk/opensync/mapping/opensync_mapping_table.h ============================================================================== --- trunk/opensync/mapping/opensync_mapping_table.h Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/opensync/mapping/opensync_mapping_table.h Sun Mar 29 19:48:30 2009 (r5429) @@ -109,22 +109,15 @@ OSYNC_EXPORT void osync_mapping_table_remove_mapping(OSyncMappingTable *table, OSyncMapping *mapping); /** - * @brief Get the number of mappings in the mapping table - * - * @param table The mapping table object - * @return Number of mappings - */ -OSYNC_EXPORT unsigned int osync_mapping_table_num_mappings(OSyncMappingTable *table); - -/** - * @brief Get nth mapping object from mapping table - * - * @param table The mapping table object to count mappings - * @param nth The position of the mapping object - * @return The nth mapping object from mapping table or NULL if nth position isn't available - */ -OSYNC_EXPORT OSyncMapping *osync_mapping_table_nth_mapping(OSyncMappingTable *table, unsigned int nth); - + * @brief Returns a OSyncList that contains the OSyncMapping of this mapping table + * + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. + * + * @param table A pointer to a OSyncMappingTable + * @return A shallow copy of the internal list of OSyncMappings + */ +OSYNC_EXPORT OSyncList *osync_mapping_table_get_mappings(OSyncMappingTable *table); /** * @brief Get next free mapping id from mapping table Modified: trunk/opensync/mapping/opensync_mapping_table_internals.h ============================================================================== --- trunk/opensync/mapping/opensync_mapping_table_internals.h Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/opensync/mapping/opensync_mapping_table_internals.h Sun Mar 29 19:48:30 2009 (r5429) @@ -18,8 +18,8 @@ * */ -#ifndef OPENSYNC_MAPPING_TABLE_INTERNALS_H_ -#define OPENSYNC_MAPPING_TABLE_INTERNALS_H_ +#ifndef _OPENSYNC_MAPPING_TABLE_INTERNALS_H_ +#define _OPENSYNC_MAPPING_TABLE_INTERNALS_H_ /** * @defgroup OSyncMappingTableInternalAPI OpenSync Mapping Table Internals @@ -40,6 +40,23 @@ OSyncList *mappings; }; +/** + * @brief Get the number of mappings in the mapping table + * + * @param table The mapping table object + * @return Number of mappings + */ +OSYNC_TEST_EXPORT unsigned int osync_mapping_table_num_mappings(OSyncMappingTable *table); + +/** + * @brief Get nth mapping object from mapping table + * + * @param table The mapping table object to count mappings + * @param nth The position of the mapping object + * @return The nth mapping object from mapping table or NULL if nth position isn't available + */ +OSYNC_TEST_EXPORT OSyncMapping *osync_mapping_table_nth_mapping(OSyncMappingTable *table, unsigned int nth); + /*@}*/ -#endif /*OPENSYNC_MAPPING_TABLE_INTERNALS_H_*/ +#endif /* _OPENSYNC_MAPPING_TABLE_INTERNALS_H_ */ Modified: trunk/tests/support.c ============================================================================== --- trunk/tests/support.c Sun Mar 29 17:58:31 2009 (r5428) +++ trunk/tests/support.c Sun Mar 29 19:48:30 2009 (r5429) @@ -6,6 +6,8 @@ #include "opensync/engine/opensync_engine_internals.h" #include "opensync/archive/opensync_archive_internals.h" #include "opensync/group/opensync_group_internals.h" +#include "opensync/mapping/opensync_mapping_table_internals.h" +#include "opensync/mapping/opensync_mapping_internals.h" char *olddir = NULL; |
From: <svn...@op...> - 2009-03-29 15:58:35
|
Author: bricks Date: Sun Mar 29 17:58:31 2009 New Revision: 5428 URL: http://www.opensync.org/changeset/5428 Log: fixed symbol test for latest changes Modified: trunk/opensync.sym Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Sun Mar 29 17:49:55 2009 (r5427) +++ trunk/opensync.sym Sun Mar 29 17:58:31 2009 (r5428) @@ -162,10 +162,9 @@ osync_group_delete osync_group_env_add_group osync_group_env_find_group +osync_group_env_get_groups osync_group_env_load_groups osync_group_env_new -osync_group_env_nth_group -osync_group_env_num_groups osync_group_env_ref osync_group_env_remove_group osync_group_env_unref @@ -174,16 +173,14 @@ osync_group_get_conflict_resolution osync_group_get_converter_enabled osync_group_get_last_synchronization +osync_group_get_members osync_group_get_merger_enabled osync_group_get_name +osync_group_get_objtypes osync_group_is_uptodate osync_group_load osync_group_lock osync_group_new -osync_group_nth_member -osync_group_nth_objtype -osync_group_num_members -osync_group_num_objtypes osync_group_objtype_enabled osync_group_ref osync_group_remove_member @@ -201,7 +198,6 @@ osync_hashtable_get_changetype osync_hashtable_get_deleted osync_hashtable_get_hash -osync_hashtable_num_entries osync_hashtable_slowsync osync_hashtable_update_change osync_list_alloc @@ -310,12 +306,11 @@ osync_member_get_main_sink osync_member_get_name osync_member_get_objformats +osync_member_get_objtypes osync_member_get_pluginname osync_member_has_config osync_member_load osync_member_new -osync_member_nth_objtype -osync_member_num_objtypes osync_member_objtype_enabled osync_member_plugin_is_uptodate osync_member_ref |
From: <svn...@op...> - 2009-03-29 15:49:59
|
Author: bricks Date: Sun Mar 29 17:49:55 2009 New Revision: 5427 URL: http://www.opensync.org/changeset/5427 Log: dropped osync_hashtable_num_entries from public interface Modified: trunk/opensync/helper/opensync_hashtable.h trunk/opensync/helper/opensync_hashtable_internals.h Modified: trunk/opensync/helper/opensync_hashtable.h ============================================================================== --- trunk/opensync/helper/opensync_hashtable.h Sun Mar 29 17:46:41 2009 (r5426) +++ trunk/opensync/helper/opensync_hashtable.h Sun Mar 29 17:49:55 2009 (r5427) @@ -96,14 +96,6 @@ OSYNC_EXPORT osync_bool osync_hashtable_slowsync(OSyncHashTable *table, OSyncError **error); -/** @brief Get the number of entries - * - * @param table The hashtable - * @returns the number of entries in the hashtable - * - */ -OSYNC_EXPORT unsigned int osync_hashtable_num_entries(OSyncHashTable *table); - /** @brief Call a function over all of the entries * * @param table The hashtable to operate on Modified: trunk/opensync/helper/opensync_hashtable_internals.h ============================================================================== --- trunk/opensync/helper/opensync_hashtable_internals.h Sun Mar 29 17:46:41 2009 (r5426) +++ trunk/opensync/helper/opensync_hashtable_internals.h Sun Mar 29 17:49:55 2009 (r5427) @@ -97,5 +97,13 @@ */ OSYNC_TEST_EXPORT osync_bool osync_hashtable_save(OSyncHashTable *table, OSyncError **error); +/** @brief Get the number of entries + * + * @param table The hashtable + * @returns the number of entries in the hashtable + * + */ +OSYNC_TEST_EXPORT unsigned int osync_hashtable_num_entries(OSyncHashTable *table); + #endif /*_OPENSYNC_HASHTABLE_INTERNALS_H_*/ |
From: <svn...@op...> - 2009-03-29 15:46:46
|
Author: dgollub Date: Sun Mar 29 17:46:41 2009 New Revision: 5426 URL: http://www.opensync.org/changeset/5426 Log: Drop osync_hashtable_num_entries() calls insdie logging functions. osync_hashtable_num_entries() will be dropped from public API very soon. 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 Mar 29 17:38:26 2009 (r5425) +++ plugins/mozilla-sync/trunk/src/mozilla-sync.cpp Sun Mar 29 17:46:41 2009 (r5426) @@ -216,8 +216,6 @@ ThunderbirdAddressbook *pAB = pOSyncMozillaDatabase->pThunderbirdAddressbook; OSyncHashTable *pHT = pOSyncMozillaDatabase->pOSyncHashTable; - LOG(10, "Hash table initially has [%d] entries", osync_hashtable_num_entries(pHT)); - char *szError=NULL; if (!pAB->CardFirst(&szError, &logFunction)) { LOG_EXIT_REPORT_ERROR_SZ(10, pOSyncContext, szError); return FALSE; } @@ -315,7 +313,6 @@ } } - LOG(10, "Hash table now has [%d] entries", osync_hashtable_num_entries(pHT)); LOG_EXIT(10, "TRUE"); return TRUE; @@ -349,8 +346,6 @@ MozillaCalendar *pCal = pOSyncMozillaDatabase->pMozillaCalendar; OSyncHashTable *pHT = pOSyncMozillaDatabase->pOSyncHashTable; - LOG(10, "Hash table initially has [%d] entries", osync_hashtable_num_entries(pHT)); - char *szError=NULL; if (!pCal->EventFirst(&szError, &logFunction)) { LOG_EXIT_REPORT_ERROR_SZ(10, pOSyncContext, szError); return FALSE; } @@ -440,7 +435,6 @@ } } - LOG(10, "Hash table now has [%d] entries", osync_hashtable_num_entries(pHT)); LOG_EXIT(10, "TRUE"); return TRUE; |
From: <svn...@op...> - 2009-03-29 15:38:32
|
Author: bricks Date: Sun Mar 29 17:38:26 2009 New Revision: 5425 URL: http://www.opensync.org/changeset/5425 Log: changed list pattern for all group related interfaces refs #975 Modified: trunk/opensync/group/opensync_group.c trunk/opensync/group/opensync_group.h trunk/opensync/group/opensync_group_env.c trunk/opensync/group/opensync_group_env.h trunk/opensync/group/opensync_group_env_internals.h trunk/opensync/group/opensync_group_internals.h trunk/opensync/group/opensync_member.c trunk/opensync/group/opensync_member.h trunk/opensync/group/opensync_member_internals.h trunk/opensync/group/opensync_updater.c trunk/tests/group-tests/check_group.c trunk/tests/support.c trunk/tests/sync-tests/check_sync.c trunk/tools/osyncdump.c Modified: trunk/opensync/group/opensync_group.c ============================================================================== --- trunk/opensync/group/opensync_group.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_group.c Sun Mar 29 17:38:26 2009 (r5425) @@ -167,7 +167,7 @@ static GList *osync_group_get_supported_objtypes(OSyncGroup *group) { - GList *m = NULL; + OSyncList *m = NULL; GList *ret = NULL; GHashTable *table = g_hash_table_new(g_str_hash, g_str_equal); @@ -197,7 +197,7 @@ OSyncList *osync_group_get_supported_objtypes_mixed(OSyncGroup *group, OSyncFormatEnv *formatenv) { - GList *m; + OSyncList *m; OSyncList *ret = NULL; OSyncList *t, *targetformats = osync_group_get_objformats(group); @@ -245,7 +245,7 @@ OSyncList *osync_group_get_objformats(OSyncGroup *group) { - GList *m = NULL; + OSyncList *m = NULL; OSyncList *list = NULL; /* Loop over all members... */ @@ -572,7 +572,7 @@ osync_bool osync_group_reset(OSyncGroup *group, OSyncError **error) { OSyncDB *db = NULL; - GList *m = NULL; + OSyncList *m = NULL; char *path = NULL; osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, group, error); @@ -769,7 +769,7 @@ void osync_group_add_member(OSyncGroup *group, OSyncMember *member) { - g_assert(group); + osync_assert(group); if (!osync_member_get_configdir(member)) { char *configdir = osync_strdup_printf("%s%c%lli", group->configdir, G_DIR_SEPARATOR, osync_group_create_member_id(group)); @@ -777,20 +777,20 @@ osync_free(configdir); } - group->members = g_list_append(group->members, member); + group->members = osync_list_append(group->members, member); osync_member_ref(member); } void osync_group_remove_member(OSyncGroup *group, OSyncMember *member) { osync_assert(group); - group->members = g_list_remove(group->members, member); + group->members = osync_list_remove(group->members, member); osync_member_unref(member); } OSyncMember *osync_group_find_member(OSyncGroup *group, int id) { - GList *m = NULL; + OSyncList *m = NULL; for (m = group->members; m; m = m->next) { OSyncMember *member = m->data; if (osync_member_get_id(member) == id) @@ -802,13 +802,17 @@ OSyncMember *osync_group_nth_member(OSyncGroup *group, unsigned int nth) { osync_assert(group); - return (OSyncMember *)g_list_nth_data(group->members, nth); + return (OSyncMember *)osync_list_nth_data(group->members, nth); } unsigned int osync_group_num_members(OSyncGroup *group) { osync_assert(group); - return g_list_length(group->members); + return osync_list_length(group->members); +} + +OSyncList *osync_group_get_members(OSyncGroup *group) { + return osync_list_copy(group->members); } const char *osync_group_get_configdir(OSyncGroup *group) @@ -848,9 +852,34 @@ } +OSyncList *osync_group_get_objtypes(OSyncGroup *group) { + GList *list = osync_group_get_supported_objtypes(group); + OSyncList *new_list = NULL; + + if (list) { + OSyncList *last; + + new_list = osync_list_alloc(); + new_list->data = list->data; + new_list->prev = NULL; + last = new_list; + list = list->next; + while (list) { + last->next = osync_list_alloc(); + last->next->prev = last; + last = last->next; + last->data = list->data; + list = list->next; + } + last->next = NULL; + } + + return new_list; +} + void osync_group_set_objtype_enabled(OSyncGroup *group, const char *objtype, osync_bool enabled) { - GList *m = NULL; + OSyncList *m = NULL; osync_assert(group); /* Loop over all members... */ for (m = group->members; m; m = m->next) { @@ -861,7 +890,7 @@ int osync_group_objtype_enabled(OSyncGroup *group, const char *objtype) { - GList *m = NULL; + OSyncList *m = NULL; int enabled = -1; osync_assert(group); Modified: trunk/opensync/group/opensync_group.h ============================================================================== --- trunk/opensync/group/opensync_group.h Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_group.h Sun Mar 29 17:38:26 2009 (r5425) @@ -194,27 +194,16 @@ */ OSYNC_EXPORT OSyncMember *osync_group_find_member(OSyncGroup *group, int id); -/** @brief Returns the nth member of the group +/** + * @brief Returns a OSyncList that contains the OSyncMembers of this group * - * Returns a pointer to the nth member of the group - * - * @param group The group - * @param nth Which member to return - * @returns Pointer to the member - * - */ -OSYNC_EXPORT OSyncMember *osync_group_nth_member(OSyncGroup *group, unsigned int nth); - -/** @brief Counts the members of the group - * - * Returns the number of members in the group - * - * @param group The group - * @returns Number of members + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. * + * @param group A pointer to a OSyncGroup + * @return A shallow copy of the internal list of OSyncMembers */ -OSYNC_EXPORT unsigned int osync_group_num_members(OSyncGroup *group); - +OSYNC_EXPORT OSyncList *osync_group_get_members(OSyncGroup *group); /** @brief Returns the configdir for the group * @@ -235,23 +224,16 @@ */ OSYNC_EXPORT void osync_group_set_configdir(OSyncGroup *group, const char *directory); - -/** @brief Gets the number of object types of the group - * - * @param group The group - * @returns Number of object types of the group - * - */ -OSYNC_EXPORT unsigned int osync_group_num_objtypes(OSyncGroup *group); - -/** @brief Gets the nth object type of the group +/** + * @brief Returns a OSyncList that contains the objtype of this group * - * @param group The group - * @param nth The nth position of the object type list - * @returns Name of the nth object type of the group + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. * + * @param group A pointer to a OSyncGroup + * @return A shallow copy of the internal list of objtypes (const char*) */ -OSYNC_EXPORT const char *osync_group_nth_objtype(OSyncGroup *group, unsigned int nth); +OSYNC_EXPORT OSyncList *osync_group_get_objtypes(OSyncGroup *group); /** @brief Change the status of an object type in the group. * Modified: trunk/opensync/group/opensync_group_env.c ============================================================================== --- trunk/opensync/group/opensync_group_env.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_group_env.c Sun Mar 29 17:38:26 2009 (r5425) @@ -80,7 +80,7 @@ /* Free the groups */ while (env->groups) { osync_group_unref(env->groups->data); - env->groups = g_list_remove(env->groups, env->groups->data); + env->groups = osync_list_remove(env->groups, env->groups->data); } osync_free(env); @@ -183,7 +183,7 @@ OSyncGroup *osync_group_env_find_group(OSyncGroupEnv *env, const char *name) { - GList *g = NULL; + OSyncList *g = NULL; osync_assert(env); osync_assert(name); @@ -222,7 +222,7 @@ osync_free(configdir); } - env->groups = g_list_append(env->groups, group); + env->groups = osync_list_append(env->groups, group); osync_group_ref(group); return TRUE; @@ -233,18 +233,22 @@ osync_assert(env); osync_assert(group); - env->groups = g_list_remove(env->groups, group); + env->groups = osync_list_remove(env->groups, group); osync_group_unref(group); } int osync_group_env_num_groups(OSyncGroupEnv *env) { osync_assert(env); - return g_list_length(env->groups); + return osync_list_length(env->groups); } OSyncGroup *osync_group_env_nth_group(OSyncGroupEnv *env, int nth) { osync_assert(env); - return (OSyncGroup *)g_list_nth_data(env->groups, nth); + return (OSyncGroup *)osync_list_nth_data(env->groups, nth); +} + +OSyncList *osync_group_env_get_groups(OSyncGroupEnv *env) { + return osync_list_copy(env->groups); } Modified: trunk/opensync/group/opensync_group_env.h ============================================================================== --- trunk/opensync/group/opensync_group_env.h Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_group_env.h Sun Mar 29 17:38:26 2009 (r5425) @@ -106,26 +106,16 @@ */ OSYNC_EXPORT void osync_group_env_remove_group(OSyncGroupEnv *env, OSyncGroup *group); -/** @brief Counts the groups in the environment +/** + * @brief Returns a OSyncList that contains the OSyncGroups of this group env * - * Returns the number of groups - * - * @param env Pointer to a OSyncGroupEnv environment - * @returns Number of groups - * - */ -OSYNC_EXPORT int osync_group_env_num_groups(OSyncGroupEnv *env); - -/** @brief Returns the nth group - * - * Returns the nth groups from the environment - * - * @param env Pointer to a OSyncGroupEnv environment - * @param nth Which group to return - * @returns Pointer to the group + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. * + * @param env A pointer to a OSyncGroupEnv environment + * @return A shallow copy of the internal list of OSyncGroups */ -OSYNC_EXPORT OSyncGroup *osync_group_env_nth_group(OSyncGroupEnv *env, int nth); +OSYNC_EXPORT OSyncList *osync_group_env_get_groups(OSyncGroupEnv *env); /*@}*/ Modified: trunk/opensync/group/opensync_group_env_internals.h ============================================================================== --- trunk/opensync/group/opensync_group_env_internals.h Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_group_env_internals.h Sun Mar 29 17:38:26 2009 (r5425) @@ -31,10 +31,10 @@ * */ /*@{*/ -/*! @brief Represent a environment of groups that should be synchronized */ +/** @brief Represent a environment of groups that should be synchronized */ struct OSyncGroupEnv { /** list of groups */ - GList *groups; + OSyncList *groups; /** directory to store the groups */ char *groupsdir; @@ -42,6 +42,28 @@ int ref_count; }; +/** @brief Counts the groups in the environment + * + * Returns the number of groups + * + * @param env Pointer to a OSyncGroupEnv environment + * @returns Number of groups + * + */ +OSYNC_TEST_EXPORT int osync_group_env_num_groups(OSyncGroupEnv *env); + +/** @brief Returns the nth group + * + * Returns the nth groups from the environment + * + * @param env Pointer to a OSyncGroupEnv environment + * @param nth Which group to return + * @returns Pointer to the group + * + */ +OSYNC_TEST_EXPORT OSyncGroup *osync_group_env_nth_group(OSyncGroupEnv *env, int nth); + + /*@}*/ #endif /* _OPENSYNC_GROUP_ENV_INTERNALS_H_ */ Modified: trunk/opensync/group/opensync_group_internals.h ============================================================================== --- trunk/opensync/group/opensync_group_internals.h Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_group_internals.h Sun Mar 29 17:38:26 2009 (r5425) @@ -35,12 +35,12 @@ */ /*@{*/ -/*! @brief Represent a group of members that should be synchronized */ +/** @brief Represent a group of members that should be synchronized */ struct OSyncGroup { /** The name of the group */ char *name; /** The members of the group */ - GList *members; + OSyncList *members; /** The path, where the configuration resides */ char *configdir; /** The last time this group was synchronized successfully */ @@ -151,6 +151,45 @@ OSYNC_TEST_EXPORT void osync_group_set_schemadir(OSyncGroup *group, const char *schemadir); #endif /* OPENSYNC_UNITTESTS*/ +/** @brief Returns the nth member of the group + * + * Returns a pointer to the nth member of the group + * + * @param group The group + * @param nth Which member to return + * @returns Pointer to the member + * + */ +OSYNC_TEST_EXPORT OSyncMember *osync_group_nth_member(OSyncGroup *group, unsigned int nth); + +/** @brief Counts the members of the group + * + * Returns the number of members in the group + * + * @param group The group + * @returns Number of members + * + */ +OSYNC_TEST_EXPORT unsigned int osync_group_num_members(OSyncGroup *group); + +/** @brief Gets the number of object types of the group + * + * @param group The group + * @returns Number of object types of the group + * + */ +OSYNC_TEST_EXPORT unsigned int osync_group_num_objtypes(OSyncGroup *group); + +/** @brief Gets the nth object type of the group + * + * @param group The group + * @param nth The nth position of the object type list + * @returns Name of the nth object type of the group + * + */ +OSYNC_TEST_EXPORT const char *osync_group_nth_objtype(OSyncGroup *group, unsigned int nth); + + /*@}*/ #endif /* _OPENSYNC_GROUP_INTERNALS_H_ */ Modified: trunk/opensync/group/opensync_member.c ============================================================================== --- trunk/opensync/group/opensync_member.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_member.c Sun Mar 29 17:38:26 2009 (r5425) @@ -785,6 +785,34 @@ return osync_objtype_sink_get_name(sink); } +OSyncList *osync_member_get_objtypes(OSyncMember *member) { + GList *list = member->objtypes; + OSyncList *new_list = NULL; + OSyncObjTypeSink *sink = NULL; + + if (list) { + OSyncList *last; + + new_list = osync_list_alloc(); + sink = (OSyncObjTypeSink*)list->data; + new_list->data = (char *)osync_objtype_sink_get_name(sink); + new_list->prev = NULL; + last = new_list; + list = list->next; + while (list) { + last->next = osync_list_alloc(); + last->next->prev = last; + last = last->next; + sink = (OSyncObjTypeSink*)list->data; + last->data = (char *)osync_objtype_sink_get_name(sink); + list = list->next; + } + last->next = NULL; + } + + return new_list; +} + osync_bool osync_member_objtype_enabled(OSyncMember *member, const char *objtype) { OSyncObjTypeSink *sink = NULL; Modified: trunk/opensync/group/opensync_member.h ============================================================================== --- trunk/opensync/group/opensync_member.h Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_member.h Sun Mar 29 17:38:26 2009 (r5425) @@ -193,24 +193,16 @@ */ OSYNC_EXPORT long long int osync_member_get_id(OSyncMember *member); - -/** @brief Get the number of supported object types of this member - * - * @param member The member pointer - * @returns Number of supported object type of this member - * - */ -OSYNC_EXPORT int osync_member_num_objtypes(OSyncMember *member); - -/** @brief Get the name of the nth supported object type of this member +/** + * @brief Returns a OSyncList that contains the objtypes of this member * - * @param member The member pointer - * @param nth The nth position of the list of supported object types of this member - * @returns Name of the nth supported object type + * Please be aware that the returned list has to be freed with + * osync_list_free. If it isn't freed there will be a memory leak. * + * @param member A pointer to a OSyncMember + * @return A shallow copy of the internal list of objtypes (const char*) */ -OSYNC_EXPORT const char *osync_member_nth_objtype(OSyncMember *member, int nth); - +OSYNC_EXPORT OSyncList *osync_member_get_objtypes(OSyncMember *member); /** @brief Add an OSyncObjTypeSink object to the member list of supported object types of this member * Modified: trunk/opensync/group/opensync_member_internals.h ============================================================================== --- trunk/opensync/group/opensync_member_internals.h Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_member_internals.h Sun Mar 29 17:38:26 2009 (r5425) @@ -120,6 +120,24 @@ OSYNC_TEST_EXPORT void osync_member_set_schemadir(OSyncMember *member, const char *schemadir); #endif +/** @brief Get the number of supported object types of this member + * + * @param member The member pointer + * @returns Number of supported object type of this member + * + */ +OSYNC_TEST_EXPORT int osync_member_num_objtypes(OSyncMember *member); + +/** @brief Get the name of the nth supported object type of this member + * + * @param member The member pointer + * @param nth The nth position of the list of supported object types of this member + * @returns Name of the nth supported object type + * + */ +OSYNC_TEST_EXPORT const char *osync_member_nth_objtype(OSyncMember *member, int nth); + + /*@}*/ #endif /* _OPENSYNC_MEMBER_INTERNALS_H_ */ Modified: trunk/opensync/group/opensync_updater.c ============================================================================== --- trunk/opensync/group/opensync_updater.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/opensync/group/opensync_updater.c Sun Mar 29 17:38:26 2009 (r5425) @@ -44,6 +44,8 @@ #include "opensync_updater_private.h" #include "opensync_updater_internals.h" +#include "opensync_group_internals.h" + static void osync_updater_set_error(OSyncUpdater *updater, OSyncError *error) { osync_assert(updater); Modified: trunk/tests/group-tests/check_group.c ============================================================================== --- trunk/tests/group-tests/check_group.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/tests/group-tests/check_group.c Sun Mar 29 17:38:26 2009 (r5425) @@ -5,6 +5,7 @@ #include <opensync/opensync_internals.h> #include "opensync/group/opensync_group_internals.h" +#include "opensync/group/opensync_group_env_internals.h" START_TEST (group_last_sync) { Modified: trunk/tests/support.c ============================================================================== --- trunk/tests/support.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/tests/support.c Sun Mar 29 17:38:26 2009 (r5425) @@ -5,6 +5,7 @@ #include "opensync/engine/opensync_engine_internals.h" #include "opensync/archive/opensync_archive_internals.h" +#include "opensync/group/opensync_group_internals.h" char *olddir = NULL; Modified: trunk/tests/sync-tests/check_sync.c ============================================================================== --- trunk/tests/sync-tests/check_sync.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/tests/sync-tests/check_sync.c Sun Mar 29 17:38:26 2009 (r5425) @@ -7,6 +7,7 @@ #include <opensync/opensync-mapping.h> #include "opensync/group/opensync_group_internals.h" +#include "opensync/group/opensync_member_internals.h" #include "opensync/engine/opensync_engine_internals.h" START_TEST (sync_setup_connect) Modified: trunk/tools/osyncdump.c ============================================================================== --- trunk/tools/osyncdump.c Sun Mar 29 16:50:05 2009 (r5424) +++ trunk/tools/osyncdump.c Sun Mar 29 17:38:26 2009 (r5425) @@ -88,25 +88,27 @@ { OSyncGroup *group = osync_group_env_find_group(env, groupname); - int i, num_objtypes; + int num_objtypes; if (!group) { printf("Unable to find group with name \"%s\"\n", groupname); return; } - - num_objtypes = osync_group_num_objtypes(group); + + OSyncList *objtypes = osync_group_get_objtypes(group); + num_objtypes = osync_list_length(objtypes); if (num_objtypes == 0) { printf("Group has no objtypes. Have the objtypes already been discovered?\n"); return; } - for (i = 0; i < num_objtypes; i++) { - const char *objtype = osync_group_nth_objtype(group, i); + OSyncList *o; + for (o = objtypes; o; o = o->next) { + const char *objtype = (char *) o->data; printf("Mappings for objtype \"%s\":\n", objtype); dump_map_objtype(env, objtype, groupname); } - + osync_list_free(objtypes); } #if 0 |