From: <dg...@su...> - 2009-01-23 13:24:32
|
Author: dgollub Date: Fri Jan 23 14:23:16 2009 New Revision: 5224 URL: http://www.opensync.org/changeset/5224 Log: Introduce osync_obj_engine_get_mapping_entry_engines_of_member() to get list of MappingEntryEngines of a specific member. This makes the osync_sink_engine_* interface obsolate in the public API. Example "summary" implenentation in opensnc_engine.c This fixes #1037 Modified: trunk/opensync.sym trunk/opensync/engine/opensync_engine.c trunk/opensync/engine/opensync_obj_engine.c trunk/opensync/engine/opensync_obj_engine.h Modified: trunk/opensync.sym ============================================================================== --- trunk/opensync.sym Fri Jan 23 12:03:19 2009 (r5223) +++ trunk/opensync.sym Fri Jan 23 14:23:16 2009 (r5224) @@ -348,6 +348,7 @@ osync_obj_engine_command osync_obj_engine_event osync_obj_engine_finalize +osync_obj_engine_get_mapping_entry_engines_of_member osync_obj_engine_get_objtype osync_obj_engine_get_slowsync osync_obj_engine_initialize Modified: trunk/opensync/engine/opensync_engine.c ============================================================================== --- trunk/opensync/engine/opensync_engine.c Fri Jan 23 12:03:19 2009 (r5223) +++ trunk/opensync/engine/opensync_engine.c Fri Jan 23 14:23:16 2009 (r5224) @@ -1052,9 +1052,8 @@ void osync_engine_trace_multiply_summary(OSyncEngine *engine) { - OSyncList *o, *s; - OSyncList *e; - unsigned int added, modified, deleted, unmodified, unknown; + OSyncList *o; + unsigned int added, modified, deleted, unmodified, unknown, total, n; long long int memberid; if (!osync_trace_is_enabled()) @@ -1068,13 +1067,18 @@ osync_trace(TRACE_INTERNAL, "ObjEngine: %s", objtype); - for (s = objengine->sink_engines; s; s = s->next) { - OSyncSinkEngine *sinkengine = s->data; + + total = osync_obj_engine_num_members(objengine); + for (n = 0; n < total; n++) { + OSyncMember *member = osync_obj_engine_nth_member(objengine, n); + const OSyncList *entry_engines, *e; + + entry_engines = osync_obj_engine_get_mapping_entry_engines_of_member(objengine, member); added = modified = deleted = unmodified = unknown = 0; - memberid = osync_member_get_id(osync_client_proxy_get_member(sinkengine->proxy)); + memberid = osync_member_get_id(member); - for (e = sinkengine->entries; e; e = e->next) { + for (e = entry_engines; e; e = e->next) { OSyncMappingEntryEngine *mapping_entry_engine = e->data; if (!mapping_entry_engine->dirty) Modified: trunk/opensync/engine/opensync_obj_engine.c ============================================================================== --- trunk/opensync/engine/opensync_obj_engine.c Fri Jan 23 12:03:19 2009 (r5223) +++ trunk/opensync/engine/opensync_obj_engine.c Fri Jan 23 14:23:16 2009 (r5224) @@ -1230,6 +1230,24 @@ return osync_sink_engine_get_member(sinkengine); } +const OSyncList *osync_obj_engine_get_mapping_entry_engines_of_member(OSyncObjEngine *engine, OSyncMember *member) +{ + OSyncList *s; + osync_return_val_if_fail(engine, NULL); + osync_return_val_if_fail(member, NULL); + + for (s = engine->active_sink_engines; s; s = s->next) { + OSyncSinkEngine *sinkengine = s->data; + + if (member != osync_sink_engine_get_member(sinkengine)) + continue; + + return osync_sink_engine_get_mapping_entry_engines(sinkengine); + } + + return NULL; +} + osync_bool osync_obj_engine_prepare_write(OSyncObjEngine *engine, OSyncError **error) { OSyncList *p; Modified: trunk/opensync/engine/opensync_obj_engine.h ============================================================================== --- trunk/opensync/engine/opensync_obj_engine.h Fri Jan 23 12:03:19 2009 (r5223) +++ trunk/opensync/engine/opensync_obj_engine.h Fri Jan 23 14:23:16 2009 (r5224) @@ -74,5 +74,14 @@ */ OSYNC_EXPORT OSyncMember *osync_obj_engine_nth_member(OSyncObjEngine *engine, unsigned int nth); +/*! @brief Get list of OSyncMappingEntryEngines of the OSyncObjEngine + * for a specific member + * + * @param engine Pointer to an OSyncObjEngine + * @param member Pointer to OSyncMember to get OSyncMappingEntryEngine list from + * @returns List of OSyncMappingEntryEngines-elements or NULL if there are no Mapping Entry Engines. + */ +OSYNC_EXPORT const OSyncList *osync_obj_engine_get_mapping_entry_engines_of_member(OSyncObjEngine *engine, OSyncMember *member); + #endif /* OPENSYNC_OBJ_ENGINE_H_ */ |