From: <svn...@op...> - 2009-04-14 17:38:11
|
Author: cdfrey Date: Tue Apr 14 19:38:03 2009 New Revision: 5610 URL: http://www.opensync.org/changeset/5610 Log: A number of related 0.4x API changes - hashtable API change - added OSyncObjTypeSink *sink to C++ wrapper class member args - added osync_bool slow_sync to args as well Modified: plugins/kdepim/src/datasource.cpp plugins/kdepim/src/datasource.h plugins/kdepim/src/kaddrbook.cpp plugins/kdepim/src/kaddrbook.h plugins/kdepim/src/kcal.cpp plugins/kdepim/src/kcal.h plugins/kdepim/src/knotes.cpp plugins/kdepim/src/knotes.h Modified: plugins/kdepim/src/datasource.cpp ============================================================================== --- plugins/kdepim/src/datasource.cpp Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/datasource.cpp Tue Apr 14 19:38:03 2009 (r5610) @@ -1,6 +1,7 @@ /** * @author Andrew Baumann <an...@cs...> * changed to 0.40 API by Martin Koller <ko...@ao...> + * some additional 0.40 API updates by Chris Frey <cd...@fo...> */ #include <stdlib.h> @@ -16,7 +17,7 @@ { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __PRETTY_FUNCTION__, sink, userdata, info, ctx); OSyncDataSource *obj = static_cast<OSyncDataSource *>(userdata); - obj->connect(info, ctx); + obj->connect(sink, info, ctx); osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } @@ -26,7 +27,7 @@ { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p)", __PRETTY_FUNCTION__, sink, userdata, info, ctx); OSyncDataSource *obj = static_cast<OSyncDataSource *>(userdata); - obj->disconnect(info, ctx); + obj->disconnect(sink, info, ctx); osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } @@ -37,7 +38,7 @@ { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p)", __PRETTY_FUNCTION__, sink, userdata, info, ctx); OSyncDataSource *obj = static_cast<OSyncDataSource *>(userdata); - obj->get_changes(info, ctx); + obj->get_changes(sink, info, ctx, slow_sync); osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } @@ -48,7 +49,7 @@ { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p, %p)", __PRETTY_FUNCTION__, sink, userdata, info, ctx, chg); OSyncDataSource *obj = static_cast<OSyncDataSource *>(userdata); - obj->commit(info, ctx, chg); + obj->commit(sink, info, ctx, chg); osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } @@ -58,7 +59,7 @@ { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p)", __PRETTY_FUNCTION__, sink, userdata, info, ctx); OSyncDataSource *obj = static_cast<OSyncDataSource *>(userdata); - obj->sync_done(info, ctx); + obj->sync_done(sink, info, ctx); osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } @@ -91,18 +92,8 @@ // Request a state_db from the framework. osync_objtype_sink_enable_state_db(sink, TRUE); - const char *configdir = osync_plugin_info_get_configdir(info); - QString tablepath = QString("%1/hashtable.db").arg(configdir); - hashtable = osync_hashtable_new(QFile::encodeName(tablepath), objtype, error); - if ( !hashtable ) { - osync_trace(TRACE_EXIT_ERROR, "%s: %s", __PRETTY_FUNCTION__, osync_error_print(error)); - return false; - } - if ( !osync_hashtable_load(hashtable, error) ) - { - osync_trace(TRACE_EXIT_ERROR, "%s: %s", __PRETTY_FUNCTION__, osync_error_print(error)); - return false; - } + // Request a hashtable from the framework + osync_objtype_sink_enable_hashtable(sink, TRUE); // NOTE: advanced options are per plugin; currently we read the FilterCategory // for each Resource (later this could be separated by Resource via a different name, etc.) @@ -126,7 +117,7 @@ //-------------------------------------------------------------------------------- -void OSyncDataSource::connect(OSyncPluginInfo *info, OSyncContext *ctx) +void OSyncDataSource::connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); @@ -134,7 +125,6 @@ OSyncError *error = NULL; osync_bool statematch = FALSE; - OSyncObjTypeSink *sink = osync_plugin_info_find_objtype(info, objtype); OSyncSinkStateDB *state_db = osync_objtype_sink_get_state_db(sink); if ( !osync_sink_state_equal(state_db, "done", "true", &statematch, &error) ) @@ -157,14 +147,13 @@ //-------------------------------------------------------------------------------- -void OSyncDataSource::sync_done(OSyncPluginInfo *info, OSyncContext *ctx) +void OSyncDataSource::sync_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); // Detection mechanismn if this is the first sync OSyncError *error = NULL; - OSyncObjTypeSink *sink = osync_plugin_info_find_objtype(info, objtype); OSyncSinkStateDB *state_db = osync_objtype_sink_get_state_db(sink); if ( !osync_sink_state_set(state_db, "done", "true", &error) ) @@ -176,19 +165,12 @@ } osync_context_report_success(ctx); - if ( hashtable && !osync_hashtable_save(hashtable, &error) ) - { - osync_context_report_osyncerror(ctx, error); - osync_trace(TRACE_EXIT_ERROR, "%s: %s", __PRETTY_FUNCTION__, osync_error_print(&error)); - osync_error_unref(&error); - } - osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } //-------------------------------------------------------------------------------- -bool OSyncDataSource::report_change(OSyncPluginInfo *info, OSyncContext *ctx, +bool OSyncDataSource::report_change(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, QString uid, QString data, QString hash, OSyncObjFormat *objformat) { osync_trace(TRACE_ENTRY, "%s(%p, %p, %s, (data), (hash), %p)", __PRETTY_FUNCTION__, @@ -209,6 +191,7 @@ osync_change_set_uid(change, uid.utf8()); osync_change_set_hash(change, hash.utf8()); + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); OSyncChangeType changetype = osync_hashtable_get_changetype(hashtable, change); osync_change_set_changetype(change, changetype); @@ -246,11 +229,12 @@ //-------------------------------------------------------------------------------- -bool OSyncDataSource::report_deleted(OSyncPluginInfo *info, OSyncContext *ctx, OSyncObjFormat *objformat) +bool OSyncDataSource::report_deleted(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncObjFormat *objformat) { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __PRETTY_FUNCTION__, info, ctx, objformat); OSyncError *error = NULL; + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); OSyncList *u, *uids = osync_hashtable_get_deleted(hashtable); OSyncChange *change = NULL; @@ -296,8 +280,6 @@ OSyncDataSource::~OSyncDataSource() { - if (hashtable) - osync_hashtable_unref(hashtable); } //-------------------------------------------------------------------------------- Modified: plugins/kdepim/src/datasource.h ============================================================================== --- plugins/kdepim/src/datasource.h Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/datasource.h Tue Apr 14 19:38:03 2009 (r5610) @@ -15,7 +15,7 @@ friend class KCalSharedResource; public: - OSyncDataSource(const char *objtype) : objtype(objtype), hashtable(0) {} + OSyncDataSource(const char *objtype) : objtype(objtype) {} virtual ~OSyncDataSource(); const char *getObjType() const { return objtype; } @@ -24,11 +24,11 @@ virtual bool initialize(OSyncPlugin *plugin, OSyncPluginInfo *info, OSyncError **error); /* these map to opensync's per-sink callbacks */ - virtual void connect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void disconnect(OSyncPluginInfo *info, OSyncContext *ctx) = 0; - virtual void get_changes(OSyncPluginInfo *info, OSyncContext *ctx) = 0; - virtual void commit(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg) = 0; - virtual void sync_done(OSyncPluginInfo *info, OSyncContext *ctx); + virtual void connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) = 0; + virtual void get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync) = 0; + virtual void commit(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg) = 0; + virtual void sync_done(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); // return true if at least one item in the given list is included in the categories member bool has_category(const QStringList &list) const; @@ -37,12 +37,11 @@ protected: const char *objtype; - OSyncHashTable *hashtable; QStringList categories; /* utility functions for subclasses */ - bool report_change(OSyncPluginInfo *info, OSyncContext *ctx, QString uid, QString data, QString hash, OSyncObjFormat *objformat); - bool report_deleted(OSyncPluginInfo *info, OSyncContext *ctx, OSyncObjFormat *objformat); + bool report_change(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, QString uid, QString data, QString hash, OSyncObjFormat *objformat); + bool report_deleted(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncObjFormat *objformat); }; #endif // KDEPIM_OSYNC_DATASOURCE_H Modified: plugins/kdepim/src/kaddrbook.cpp ============================================================================== --- plugins/kdepim/src/kaddrbook.cpp Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/kaddrbook.cpp Tue Apr 14 19:38:03 2009 (r5610) @@ -54,7 +54,7 @@ //-------------------------------------------------------------------------------- -void KContactDataSource::connect(OSyncPluginInfo *info, OSyncContext *ctx) +void KContactDataSource::connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); @@ -70,14 +70,14 @@ return; } - OSyncDataSource::connect(info, ctx); + OSyncDataSource::connect(sink, info, ctx); osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } //-------------------------------------------------------------------------------- -void KContactDataSource::disconnect(OSyncPluginInfo *info, OSyncContext *ctx) +void KContactDataSource::disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); @@ -101,15 +101,14 @@ //-------------------------------------------------------------------------------- -void KContactDataSource::get_changes(OSyncPluginInfo *info, OSyncContext *ctx) +void KContactDataSource::get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); OSyncError *error = NULL; + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); - OSyncObjTypeSink *sink = osync_plugin_info_find_objtype(info, objtype); - - if (osync_objtype_sink_get_slowsync(sink)) { + if (slow_sync) { osync_trace(TRACE_INTERNAL, "Got slow-sync, resetting hashtable"); if (!osync_hashtable_slowsync(hashtable, &error)) { osync_context_report_osyncerror(ctx, error); @@ -132,7 +131,7 @@ // only vcard3.0 exports Categories QString data = converter.createVCard(*it, KABC::VCardConverter::v3_0); - if (!report_change(info, ctx, it->uid(), data, calc_hash(*it), objformat)) { + if (!report_change(sink, info, ctx, it->uid(), data, calc_hash(*it), objformat)) { osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Failed to get changes"); osync_trace(TRACE_EXIT_ERROR, "%s", __PRETTY_FUNCTION__); @@ -140,7 +139,7 @@ } } - if (!report_deleted(info, ctx, objformat)) { + if (!report_deleted(sink, info, ctx, objformat)) { osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Failed detecting deleted changes."); osync_trace(TRACE_EXIT_ERROR, "%s", __PRETTY_FUNCTION__); return; @@ -152,7 +151,7 @@ //-------------------------------------------------------------------------------- -void KContactDataSource::commit(OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) +void KContactDataSource::commit(OSyncObjTypeSink *sink, OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, ctx, chg); KABC::VCardConverter converter; @@ -224,6 +223,7 @@ } } + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); osync_hashtable_update_change(hashtable, chg); osync_context_report_success(ctx); Modified: plugins/kdepim/src/kaddrbook.h ============================================================================== --- plugins/kdepim/src/kaddrbook.h Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/kaddrbook.h Tue Apr 14 19:38:03 2009 (r5610) @@ -33,10 +33,10 @@ KContactDataSource() : OSyncDataSource("contact"), addressbookptr(0), modified(false), ticket(0) {}; virtual ~KContactDataSource() {}; - virtual void connect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void disconnect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void get_changes(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void commit(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); + virtual void connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync); + virtual void commit(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); private: QString calc_hash(KABC::Addressee &e); Modified: plugins/kdepim/src/kcal.cpp ============================================================================== --- plugins/kdepim/src/kcal.cpp Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/kcal.cpp Tue Apr 14 19:38:03 2009 (r5610) @@ -175,7 +175,9 @@ * This function exists because the logic for converting the events or to-dos * is the same, only the objtype and format is different. */ -bool KCalSharedResource::report_incidence(OSyncDataSource *dsobj, OSyncPluginInfo *info, OSyncContext *ctx, +bool KCalSharedResource::report_incidence(OSyncDataSource *dsobj, + OSyncObjTypeSink *sink, + OSyncPluginInfo *info, OSyncContext *ctx, KCal::Incidence *e, OSyncObjFormat *objformat) { /* Build a local calendar for the incidence data */ @@ -186,12 +188,12 @@ KCal::ICalFormat format; QString data = format.toString(&cal); - return dsobj->report_change(info, ctx, e->uid(), data, calc_hash(e), objformat); + return dsobj->report_change(sink, info, ctx, e->uid(), data, calc_hash(e), objformat); } //-------------------------------------------------------------------------------- -bool KCalSharedResource::get_event_changes(OSyncDataSource *dsobj, OSyncPluginInfo *info, OSyncContext *ctx) +bool KCalSharedResource::get_event_changes(OSyncDataSource *dsobj, OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { OSyncFormatEnv *formatenv = osync_plugin_info_get_format_env(info); OSyncObjFormat *objformat = osync_format_env_find_objformat(formatenv, "vevent20"); @@ -210,7 +212,7 @@ if ( (*i)->uid().contains("KABC_Birthday") || (*i)->uid().contains("KABC_Anniversary") ) continue; - if (!report_incidence(dsobj, info, ctx, *i, objformat)) + if (!report_incidence(dsobj, sink, info, ctx, *i, objformat)) return false; } @@ -219,7 +221,7 @@ //-------------------------------------------------------------------------------- -bool KCalSharedResource::get_todo_changes(OSyncDataSource *dsobj, OSyncPluginInfo *info, OSyncContext *ctx) +bool KCalSharedResource::get_todo_changes(OSyncDataSource *dsobj, OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { OSyncFormatEnv *formatenv = osync_plugin_info_get_format_env(info); OSyncObjFormat *objformat = osync_format_env_find_objformat(formatenv, "vtodo20"); @@ -230,7 +232,7 @@ if ( ! dsobj->has_category((*i)->categories()) ) continue; - if (!report_incidence(dsobj, info, ctx, *i, objformat)) + if (!report_incidence(dsobj, sink, info, ctx, *i, objformat)) return false; } @@ -239,23 +241,23 @@ //-------------------------------------------------------------------------------- -void KCalEventDataSource::connect(OSyncPluginInfo *info, OSyncContext *ctx) +void KCalEventDataSource::connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { if (kcal->open(ctx)) - OSyncDataSource::connect(info, ctx); + OSyncDataSource::connect(sink, info, ctx); } //-------------------------------------------------------------------------------- -void KCalTodoDataSource::connect(OSyncPluginInfo *info, OSyncContext *ctx) +void KCalTodoDataSource::connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { if (kcal->open(ctx)) - OSyncDataSource::connect(info, ctx); + OSyncDataSource::connect(sink, info, ctx); } //-------------------------------------------------------------------------------- -void KCalEventDataSource::disconnect(OSyncPluginInfo *, OSyncContext *ctx) +void KCalEventDataSource::disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *, OSyncContext *ctx) { if (kcal->close(ctx)) osync_context_report_success(ctx); @@ -263,7 +265,7 @@ //-------------------------------------------------------------------------------- -void KCalTodoDataSource::disconnect(OSyncPluginInfo *, OSyncContext *ctx) +void KCalTodoDataSource::disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *, OSyncContext *ctx) { if (kcal->close(ctx)) osync_context_report_success(ctx); @@ -271,15 +273,14 @@ //-------------------------------------------------------------------------------- -void KCalEventDataSource::get_changes(OSyncPluginInfo *info, OSyncContext *ctx) +void KCalEventDataSource::get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); OSyncError *error = NULL; + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); - OSyncObjTypeSink *sink = osync_plugin_info_get_sink(info); - - if (osync_objtype_sink_get_slowsync(sink)) { + if (slow_sync) { osync_trace(TRACE_INTERNAL, "Got slow-sync, resetting hashtable"); if (!osync_hashtable_slowsync(hashtable, &error)) { osync_context_report_osyncerror(ctx, error); @@ -288,7 +289,7 @@ } } - if (!kcal->get_event_changes(this, info, ctx)) { + if (!kcal->get_event_changes(this, sink, info, ctx)) { osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Error while reciving latest changes."); osync_trace(TRACE_EXIT_ERROR, "%s: error in get_todo_changes", __PRETTY_FUNCTION__); return; @@ -297,7 +298,7 @@ OSyncFormatEnv *formatenv = osync_plugin_info_get_format_env(info); OSyncObjFormat *objformat = osync_format_env_find_objformat(formatenv, "vevent20"); - if (!report_deleted(info, ctx, objformat)) { + if (!report_deleted(sink, info, ctx, objformat)) { osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Error while detecting latest changes."); osync_trace(TRACE_EXIT_ERROR, "%s", __PRETTY_FUNCTION__); return; @@ -309,18 +310,17 @@ //-------------------------------------------------------------------------------- -void KCalTodoDataSource::get_changes(OSyncPluginInfo *info, OSyncContext *ctx) +void KCalTodoDataSource::get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); OSyncError *error = NULL; - OSyncObjTypeSink *sink = osync_plugin_info_get_sink(info); - OSyncFormatEnv *formatenv = osync_plugin_info_get_format_env(info); OSyncObjFormat *objformat = osync_format_env_find_objformat(formatenv, "vtodo20"); + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); - if (osync_objtype_sink_get_slowsync(sink)) { + if (slow_sync) { osync_trace(TRACE_INTERNAL, "Got slow-sync"); if (!osync_hashtable_slowsync(hashtable, &error)) { osync_context_report_osyncerror(ctx, error); @@ -330,13 +330,13 @@ } - if (!kcal->get_todo_changes(this, info, ctx)) { + if (!kcal->get_todo_changes(this, sink, info, ctx)) { osync_trace(TRACE_EXIT_ERROR, "%s: error in get_todo_changes", __PRETTY_FUNCTION__); osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Error while detecting latest changes."); return; } - if (!report_deleted(info, ctx, objformat)) { + if (!report_deleted(sink, info, ctx, objformat)) { osync_trace(TRACE_EXIT_ERROR, "%s", __PRETTY_FUNCTION__); osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Error while detecting deleted entries."); return; @@ -348,24 +348,26 @@ //-------------------------------------------------------------------------------- -void KCalEventDataSource::commit(OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) +void KCalEventDataSource::commit(OSyncObjTypeSink *sink, OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) { // We use the same function for events and to-do if (!kcal->commit(this, ctx, chg)) return; + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); osync_hashtable_update_change(hashtable, chg); osync_context_report_success(ctx); } //-------------------------------------------------------------------------------- -void KCalTodoDataSource::commit(OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) +void KCalTodoDataSource::commit(OSyncObjTypeSink *sink, OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) { // We use the same function for calendar and to-do if (!kcal->commit(this, ctx, chg)) return; + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); osync_hashtable_update_change(hashtable, chg); osync_context_report_success(ctx); } Modified: plugins/kdepim/src/kcal.h ============================================================================== --- plugins/kdepim/src/kcal.h Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/kcal.h Tue Apr 14 19:38:03 2009 (r5610) @@ -35,15 +35,15 @@ KCalSharedResource() : calendar(0), refcount(0) { } bool open(OSyncContext *ctx); bool close(OSyncContext *ctx); - bool get_event_changes(OSyncDataSource *dsobj, OSyncPluginInfo *info, OSyncContext *ctx); - bool get_todo_changes(OSyncDataSource *dsobj, OSyncPluginInfo *info, OSyncContext *ctx); + bool get_event_changes(OSyncDataSource *dsobj, OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + bool get_todo_changes(OSyncDataSource *dsobj, OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); bool commit(OSyncDataSource *dsobj, OSyncContext *ctx, OSyncChange *chg); private: KCal::CalendarResources *calendar; int refcount; - bool report_incidence(OSyncDataSource *dsobj, OSyncPluginInfo *info, OSyncContext *ctx, + bool report_incidence(OSyncDataSource *dsobj, OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, KCal::Incidence *e, OSyncObjFormat *objformat); }; @@ -55,10 +55,10 @@ KCalEventDataSource(KCalSharedResource *kcal) : OSyncDataSource("event"), kcal(kcal) {}; virtual ~KCalEventDataSource() {}; - virtual void connect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void disconnect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void get_changes(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void commit(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); + virtual void connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync); + virtual void commit(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); private: KCalSharedResource *kcal; @@ -72,10 +72,10 @@ KCalTodoDataSource(KCalSharedResource *kcal) : OSyncDataSource("todo"), kcal(kcal) {}; virtual ~KCalTodoDataSource() {}; - virtual void connect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void disconnect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void get_changes(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void commit(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); + virtual void connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync); + virtual void commit(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); private: KCalSharedResource *kcal; Modified: plugins/kdepim/src/knotes.cpp ============================================================================== --- plugins/kdepim/src/knotes.cpp Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/knotes.cpp Tue Apr 14 19:38:03 2009 (r5610) @@ -36,7 +36,7 @@ //-------------------------------------------------------------------------------- -void KNotesDataSource::connect(OSyncPluginInfo *info, OSyncContext *ctx) +void KNotesDataSource::connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __PRETTY_FUNCTION__, info, ctx); @@ -68,14 +68,14 @@ kn_iface = new KNotesIface_stub("knotes", "KNotesIface"); - OSyncDataSource::connect(info, ctx); + OSyncDataSource::connect(sink, info, ctx); osync_trace(TRACE_EXIT, "%s", __PRETTY_FUNCTION__); } //-------------------------------------------------------------------------------- -void KNotesDataSource::disconnect(OSyncPluginInfo *, OSyncContext *ctx) +void KNotesDataSource::disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *, OSyncContext *ctx) { osync_trace(TRACE_ENTRY, "%s(%p)", __func__, ctx); @@ -125,7 +125,7 @@ //-------------------------------------------------------------------------------- -void KNotesDataSource::get_changes(OSyncPluginInfo *info, OSyncContext *ctx) +void KNotesDataSource::get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync) { osync_trace(TRACE_ENTRY, "%s(%p)", __func__, ctx); QMap <KNoteID_t,QString> fNotes; @@ -139,8 +139,8 @@ return; } - OSyncObjTypeSink *sink = osync_plugin_info_find_objtype(info, objtype); - if (osync_objtype_sink_get_slowsync(sink)) { + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); + if (slow_sync) { osync_trace(TRACE_INTERNAL, "Got slow-sync, resetting hashtable"); if (!osync_hashtable_slowsync(hashtable, &error)) { osync_context_report_osyncerror(ctx, error); @@ -161,7 +161,7 @@ hash_value.update(data.utf8()); QString hash = hash_value.base64Digest(); - if ( !report_change(info, ctx, uid, data, hash, objformat) ) { + if ( !report_change(sink, info, ctx, uid, data, hash, objformat) ) { osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Failed to get changes"); osync_trace(TRACE_EXIT_ERROR, "%s", __PRETTY_FUNCTION__); return; @@ -170,7 +170,7 @@ hash_value.reset(); } - if (!report_deleted(info, ctx, objformat)) { + if (!report_deleted(sink, info, ctx, objformat)) { osync_context_report_error(ctx, OSYNC_ERROR_GENERIC, "Failed detecting deleted changes."); osync_trace(TRACE_EXIT_ERROR, "%s", __func__); return; @@ -182,7 +182,7 @@ //-------------------------------------------------------------------------------- -void KNotesDataSource::commit(OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) +void KNotesDataSource::commit(OSyncObjTypeSink *sink, OSyncPluginInfo *, OSyncContext *ctx, OSyncChange *chg) { osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, ctx, chg); OSyncChangeType type = osync_change_get_changetype(chg); @@ -258,6 +258,7 @@ }*/ } + OSyncHashTable *hashtable = osync_objtype_sink_get_hashtable(sink); osync_hashtable_update_change(hashtable, chg); osync_context_report_success(ctx); osync_trace(TRACE_EXIT, "%s", __func__); Modified: plugins/kdepim/src/knotes.h ============================================================================== --- plugins/kdepim/src/knotes.h Tue Apr 14 19:37:11 2009 (r5609) +++ plugins/kdepim/src/knotes.h Tue Apr 14 19:38:03 2009 (r5610) @@ -57,10 +57,10 @@ KNotesDataSource() : OSyncDataSource("note") {}; virtual ~KNotesDataSource() {}; - virtual void connect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void disconnect(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void get_changes(OSyncPluginInfo *info, OSyncContext *ctx); - virtual void commit(OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); + virtual void connect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void disconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx); + virtual void get_changes(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync); + virtual void commit(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *chg); private: DCOPClient *kn_dcop; |