Changeset 2563
- Timestamp:
- 10/14/07 15:29:12 (1 year ago)
- Files:
-
- trunk/opensync/engine/opensync_obj_engine.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/opensync/engine/opensync_obj_engine.c
r2562 r2563 1236 1236 for (p = engine->sink_engines; p; p = p->next) { 1237 1237 sinkengine = p->data; 1238 1239 OSyncMember *member = osync_client_proxy_get_member(sinkengine->proxy); 1240 OSyncObjTypeSink *objtype_sink = osync_member_find_objtype_sink(member, engine->objtype); 1241 1242 /* If the sink engine isn't able/allowed to write we don't care if everything got written ("how dirty is it!?") */ 1243 if (!osync_objtype_sink_get_write(objtype_sink)) 1244 break; 1238 1245 1239 1246 for (e = sinkengine->entries; e; e = e->next) { … … 1512 1519 g_free(engine); 1513 1520 } 1521 } 1522 1523 static int _osync_obj_engine_num_write_sinks(OSyncObjEngine *objengine) { 1524 osync_trace(TRACE_ENTRY, "%s(%p)", __func__, objengine); 1525 1526 int num = 0; 1527 GList *p = NULL; 1528 OSyncSinkEngine *sink; 1529 1530 for (p = objengine->sink_engines; p; p = p->next) { 1531 sink = p->data; 1532 1533 1534 } 1535 1536 osync_trace(TRACE_EXIT, "%s: %i", __func__, num); 1537 return num; 1514 1538 } 1515 1539 … … 1693 1717 } 1694 1718 1719 int write_sinks = _osync_obj_engine_num_write_sinks(engine); 1720 1721 /* Get change entries since last sync. (get_changes) */ 1695 1722 for (p = engine->sink_engines; p; p = p->next) { 1696 1723 sinkengine = p->data; 1724 1725 1726 OSyncMember *member = osync_client_proxy_get_member(sinkengine->proxy); 1727 OSyncObjTypeSink *objtype_sink = osync_member_find_objtype_sink(member, engine->objtype); 1728 1729 /* Is there at least one other writeable sink? */ 1730 if (osync_objtype_sink_get_write(objtype_sink) && write_sinks) { 1731 _obj_engine_read_callback(sinkengine->proxy, sinkengine, *error); 1732 osync_trace(TRACE_INTERNAL, "no other writable sinks .... SKIP"); 1733 continue; 1734 } 1735 1697 1736 if (!osync_client_proxy_get_changes(sinkengine->proxy, _obj_engine_read_callback, sinkengine, engine->objtype, engine->slowsync, error)) 1698 1737 goto error; … … 1725 1764 sinkengine = p->data; 1726 1765 1766 OSyncMember *member = osync_client_proxy_get_member(sinkengine->proxy); 1767 long long int memberid = osync_member_get_id(member); 1768 1769 OSyncObjTypeSink *objtype_sink = osync_member_find_objtype_sink(member, engine->objtype); 1770 1727 1771 for (e = sinkengine->entries; e; e = e->next) { 1728 1772 OSyncMappingEntryEngine *entry_engine = e->data; 1729 1773 osync_assert(entry_engine); 1730 1731 OSyncMember *member = osync_client_proxy_get_member(sinkengine->proxy);1732 long long int memberid = osync_member_get_id(member);1733 1734 1774 1735 1775 /* Merger - Save the entire xml and demerge */ … … 1768 1808 } 1769 1809 1770 if (osync_entry_engine_is_dirty(entry_engine)) { 1810 1811 /* Only commit change if the objtype sink is able/allowed to write. */ 1812 if (osync_objtype_sink_get_write(objtype_sink) && osync_entry_engine_is_dirty(entry_engine)) { 1771 1813 osync_assert(entry_engine->change); 1772 1814 OSyncChange *change = entry_engine->change;
