Changeset 2433

Show
Ignore:
Timestamp:
08/08/07 22:21:01 (1 year ago)
Author:
cstender
Message:

addd slowsync detection

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/irmc-sync/src/irmc_sync.c

    r2432 r2433  
    895895 
    896896  // check whether a slowsync is necessary 
    897  
    898 /* TODO: port sink engine stuff.. 
    899   gboolean slowsync = FALSE;   
    900    
    901   if (osync_member_objtype_enabled(env->member, "event")) {  
    902     slowsync = FALSE; 
    903     if ( !detect_slowsync( config->calendar_changecounter, "cal", &(config->calendar_dbid), 
    904                            &(config->serial_number), &slowsync, config->obexhandle, &error ) ) 
    905     { 
    906       irmc_disconnect(config); 
    907       osync_context_report_osyncerror(ctx, &error); 
    908       osync_trace(TRACE_EXIT, "%s: %s", __func__, osync_error_print(&error)); 
    909       return; 
    910     } else { 
    911       osync_member_set_slow_sync(env->member, "event", slowsync); 
    912     } 
    913   } 
    914    
    915   if (osync_member_objtype_enabled(env->member, "contact")) {  
    916     slowsync = FALSE; 
    917     if ( !detect_slowsync( config->addressbook_changecounter, "pb", &(config->addressbook_dbid), 
    918                            &(config->serial_number), &slowsync, config->obexhandle, &error ) ) 
    919     { 
    920       irmc_disconnect(config); 
    921       osync_context_report_osyncerror(ctx, &error); 
    922       osync_trace(TRACE_EXIT, "%s: %s", __func__, osync_error_print(&error)); 
    923       return; 
    924     } else { 
    925       osync_member_set_slow_sync(env->member, "contact", slowsync); 
    926     } 
    927   } 
    928    
    929   if (osync_member_objtype_enabled(env->member, "note")) {  
    930     slowsync = FALSE; 
    931     if ( !detect_slowsync( config->notebook_changecounter, "nt", &(config->notebook_dbid), 
    932                            &(config->serial_number), &slowsync, config->obexhandle, &error ) ) 
    933     { 
    934       irmc_disconnect(config); 
    935       osync_context_report_osyncerror(ctx, &error); 
    936       osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(&error)); 
    937       return; 
    938     } else { 
    939       osync_member_set_slow_sync(env->member, "note", slowsync); 
    940     } 
    941   } 
    942 */ 
     897  gboolean slowsync = FALSE; 
     898 
     899  if (!detect_slowsync(database->changecounter, database->obex_db, &(database->dbid), 
     900                         &(config->serial_number), &slowsync, config->obexhandle, &error)) { 
     901    irmc_disconnect(config); 
     902    osync_context_report_osyncerror(ctx, error); 
     903    osync_trace(TRACE_EXIT, "%s: %s", __func__, osync_error_print(&error)); 
     904   return; 
     905  } 
     906 
     907  if (slowsync == TRUE) { 
     908          osync_trace(TRACE_INTERNAL, "Have to do a slowsync for objtype %s", objtype); 
     909          osync_objtype_sink_set_slowsync(sink, TRUE); 
     910  } else { 
     911    osync_trace(TRACE_INTERNAL, "No slowsync required"); 
     912  }    
    943913 
    944914  osync_context_report_success(ctx); 
     
    979949  const char *objtype = osync_objtype_sink_get_name(sink); 
    980950 
    981   //if (database->changecounter >= 0 && strcmp(database->dbid, "FFFFFF")) { 
    982   if (database->changecounter >= 0) { 
     951  if (database->changecounter >= 0 && strcmp(database->dbid, "FFFFFF")) { 
    983952    char *anchor = g_strdup_printf("%d:%s", database->changecounter, database->dbid); 
    984953    osync_anchor_update( env->anchor_path, objtype, anchor ); 
     
    13541323} 
    13551324 
    1356 static irmc_database *create_database(OSyncPluginInfo *info, const char *objtype, const char *format, OSyncSinkGetChangesFn getchanges, OSyncSinkCommitFn commit, OSyncError **error) 
     1325static irmc_database *create_database(OSyncPluginInfo *info, const char *objtype, const char *format, char *obex_db, OSyncSinkGetChangesFn getchanges, OSyncSinkCommitFn commit, OSyncError **error) 
    13571326{ 
    13581327  osync_trace(TRACE_ENTRY, "%s(%p, %s, %s, %p)", __func__, info, objtype, format, error);        
     
    13881357  osync_plugin_info_add_objtype(info, database->sink); 
    13891358 
     1359  database->obex_db = obex_db; 
     1360 
    13901361  osync_trace(TRACE_EXIT, "%s: %p", __func__, database); 
    13911362  return database; 
     
    14261397  env->anchor_path = g_strdup_printf("%s/anchor.db", osync_plugin_info_get_configdir(info)); 
    14271398 
    1428   irmc_database *contactdb = create_database(info, "contact", "vcard21", irmcContactGetChangeinfo, irmcContactCommitChange, error);  
    1429   irmc_database *eventdb = create_database(info, "event", "vevent10", irmcCalendarGetChangeinfo, irmcCalendarCommitChange, error); 
    1430   irmc_database *tododb = create_database(info, "todo", "vtodo10", irmcCalendarGetChangeinfo, irmcCalendarCommitChange, error); 
    1431   irmc_database *notedb = create_database(info, "note", "vnote11", irmcNoteGetChangeinfo, irmcNoteCommitChange, error); 
     1399  irmc_database *contactdb = create_database(info, "contact", "vcard21", "pb", irmcContactGetChangeinfo, irmcContactCommitChange, error);  
     1400  irmc_database *eventdb = create_database(info, "event", "vevent10", "cal", irmcCalendarGetChangeinfo, irmcCalendarCommitChange, error); 
     1401  irmc_database *tododb = create_database(info, "todo", "vtodo10", "cal", irmcCalendarGetChangeinfo, irmcCalendarCommitChange, error); 
     1402  irmc_database *notedb = create_database(info, "note", "vnote11", "nt", irmcNoteGetChangeinfo, irmcNoteCommitChange, error); 
    14321403 
    14331404  if (!contactdb || !eventdb || !tododb || !notedb) 
  • plugins/irmc-sync/src/irmc_sync.h

    r2421 r2433  
    6969  unsigned int changecounter;    
    7070  char *dbid; 
     71  char *obex_db; 
    7172} irmc_database; 
    7273