Changeset 2424

Show
Ignore:
Timestamp:
08/06/07 19:00:03 (1 year ago)
Author:
dgollub
Message:

Some more porting of OSyncChange and OSyncData related changes...

Files:

Legend:

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

    r2421 r2424  
    268268 * Creates the calendar specific changeinfo for slow- and fastsync 
    269269 */ 
    270 void create_calendar_changeinfo(int sync_type, OSyncContext *ctx, char *data, char *luid, int type) 
     270void create_calendar_changeinfo(int sync_type, OSyncPluginInfo *info, OSyncObjTypeSink *sink, OSyncContext *ctx, char *data, char *luid, int type) 
    271271{ 
    272272  osync_trace(TRACE_ENTRY, "%s(%i, %p, %p, %s, %i)", __func__, sync_type, ctx, data, luid, type); 
     
    274274 
    275275  OSyncError *error = NULL; 
     276  irmc_database *database = osync_objtype_sink_get_userdata(sink); 
    276277   
    277278  if (sync_type == SLOW_SYNC) { 
     
    314315 
    315316 
     317        OSyncData *odata = NULL; 
     318        //TODO: strlen() + 1 
     319        event_size = strlen(event); 
     320 
    316321        if (objtype == SYNC_OBJECT_TYPE_CALENDAR) { 
    317           //osync_change_set_objformat_string(change, "vevent10"); 
     322         odata = osync_data_new(event, event_size, database->objformat, &error); 
    318323        } else if (objtype == SYNC_OBJECT_TYPE_TODO) { 
    319           //osync_change_set_objformat_string(change, "vtodo10"); 
     324         odata = osync_data_new(event, event_size, database->objformat, &error); 
    320325        } 
    321326 
     
    327332          } 
    328333        } 
    329         event_size = strlen(event); 
    330  
    331         // TODO set data 
    332         OSyncData *data = NULL; 
    333         // OSyncData *data = osync_data_new(event, event_size, objformatXXX, &error); 
    334  
    335         osync_change_set_data(change, data); 
     334 
     335        osync_change_set_data(change, odata); 
    336336        osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_ADDED); 
    337337        osync_context_report_change(ctx, change); 
     
    345345    g_assert(change); 
    346346 
    347     //osync_change_set_objformat_string(change, "plain"); 
    348347    osync_change_set_uid(change, g_strdup(luid)); 
    349348 
    350     int event_size = strlen(data); 
    351     if (event_size > 0) { 
    352       event_size = strlen(data); 
    353     } else { 
     349    int event_size; 
     350 
     351    if (!data) { 
    354352      data = NULL; 
    355353      event_size = 0; 
     354    } else { 
     355      event_size = strlen(data); 
    356356    } 
    357357 
     
    360360      osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_DELETED); 
    361361    else if (type == 'M' || event_size == 0) { 
    362       // TODO set data 
    363       OSyncData *data = NULL; 
    364       // OSyncData *data = osync_data_new(event, event_size, objformatXXX, &error); 
    365  
    366       osync_change_set_data(change, data); 
     362      OSyncFormatEnv *formatenv = osync_plugin_info_get_format_env(info); 
     363      OSyncObjFormat *plain = osync_format_env_find_objformat(formatenv, "plain"); 
     364      OSyncData *odata = osync_data_new(data, event_size, plain, &error); 
     365 
     366 
     367      osync_change_set_data(change, odata); 
    367368      osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_MODIFIED); 
    368369    } 
     
    376377 * Creates the addressbook specific changeinfo for slow- and fastsync 
    377378 */ 
    378 void create_addressbook_changeinfo(int sync_type, OSyncContext *ctx, char *data, char *luid, int type) 
     379void create_addressbook_changeinfo(int sync_type, OSyncObjTypeSink *sink, OSyncContext *ctx, char *data, char *luid, int type) 
    379380{ 
    380381  osync_trace(TRACE_ENTRY, "%s(%i, %p, %p, %s, %i)", __func__, sync_type, ctx, data, luid, type);                        
    381382  osync_trace(TRACE_SENSITIVE, "Content of data:\n%s", data); 
     383 
     384  irmc_database *database = osync_objtype_sink_get_userdata(sink); 
    382385 
    383386  OSyncError *error = NULL; 
     
    412415          } 
    413416        } 
     417 
     418        // TODO: strlen() + 1 
    414419        vcard_size = strlen(vcard); 
    415         // TODO set data 
    416         OSyncData *data = NULL; 
    417         // OSyncData *data = osync_data_new(vcard, vcard_size, objformatXXX, &error); 
    418  
    419         osync_change_set_data(change, data); 
     420        OSyncData *odata = osync_data_new(vcard, vcard_size, database->objformat, &error); 
     421 
     422        osync_change_set_data(change, odata); 
    420423 
    421424        osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_ADDED); 
     
    429432    g_assert(change); 
    430433 
    431     //osync_change_set_objformat_string(change, "vcard21"); 
    432434    osync_change_set_uid(change, g_strdup(luid)); 
    433435 
    434     int vcard_size = strlen(data); 
    435     if (vcard_size > 0) { 
     436    int vcard_size;  
     437    if (!data) { 
     438      vcard_size = 0; 
     439    } else { 
     440      // TODO strlen() + 1? 
    436441      vcard_size = strlen(data); 
    437     } else { 
    438       vcard_size = 0; 
    439442    } 
    440443 
     
    444447    else if (type == 'M' || vcard_size == 0) { 
    445448      osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_MODIFIED); 
    446       // TODO set data 
    447       OSyncData *data = NULL; 
    448       // OSyncData *data = osync_data_new(vcard, vcard_size, objformatXXX, &error); 
    449  
    450       osync_change_set_data(change, data); 
     449      OSyncData *odata = osync_data_new(data, vcard_size, database->objformat, &error); 
     450 
     451      osync_change_set_data(change, odata); 
    451452 
    452453    } 
     
    460461 * Creates the notebook specific changeinfo for slow- and fastsync 
    461462 */ 
    462 void create_notebook_changeinfo(int sync_type, OSyncContext *ctx, char *data, char *luid, int type) 
     463void create_notebook_changeinfo(int sync_type, OSyncObjTypeSink *sink, OSyncContext *ctx, char *data, char *luid, int type) 
    463464{ 
    464465  osync_trace(TRACE_ENTRY, "%s(%i, %p, %p, %s, %i)", __func__, sync_type, ctx, data, luid, type);                        
    465466  osync_trace(TRACE_SENSITIVE, "Content of data:\n%s", data); 
     467 
     468  irmc_database *database = osync_objtype_sink_get_userdata(sink); 
    466469   
    467470  OSyncError *error = NULL; 
     
    497500        } 
    498501 
     502        // TODO: strlen() + 1 
    499503        vnote_size = strlen(vnote); 
    500         // TODO set data 
    501         OSyncData *data = NULL; 
    502         // OSyncData *data = osync_data_new(vnote, vnote_size, objformatXXX, &error); 
     504        OSyncData *data = osync_data_new(vnote, vnote_size, database->objformat, &error); 
    503505 
    504506        osync_change_set_data(change, data); 
     
    518520    osync_change_set_uid(change, g_strdup(luid)); 
    519521 
    520     int vnote_size = strlen(data); 
    521     if (vnote_size > 0) { 
    522       vnote_size = strlen(data); 
    523     } else { 
     522    int vnote_size; 
     523    if (!data) { 
    524524      data = NULL; 
    525525      vnote_size = 0; 
     526    } else { 
     527      vnote_size = strlen(data); 
    526528    } 
    527529 
     
    531533    else if (type == 'M' || vnote_size == 0) { 
    532534      osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_MODIFIED); 
    533       // TODO set data 
    534       OSyncData *data = NULL; 
    535       // OSyncData *data = osync_data_new(vnote, vnote_size, objformatXXX, &error); 
    536  
    537       osync_change_set_data(change, data); 
     535      OSyncData *odata = osync_data_new(data, vnote_size, database->objformat, &error); 
     536 
     537      osync_change_set_data(change, odata); 
    538538    } 
    539539 
     
    551551 *   - create_notebook_changeinfo() 
    552552 */ 
    553 gboolean get_generic_changeinfo(irmc_environment *env, OSyncObjTypeSink *sink, OSyncContext *ctx, data_type_information *info, OSyncError **error) 
    554 
    555   osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p, %p)", __func__, env, sink, ctx, info, error); 
     553gboolean get_generic_changeinfo(irmc_environment *env, OSyncPluginInfo *oinfo, OSyncContext *ctx, data_type_information *info, OSyncError **error) 
     554
     555  osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p, %p)", __func__, env, info, ctx, info, error); 
     556 
     557  OSyncObjTypeSink *sink = osync_plugin_info_get_sink(oinfo); 
    556558 
    557559  char *buffer; 
     
    565567 
    566568  irmc_config *config = &(env->config); 
     569 
    567570 
    568571  buffer = g_malloc(DATABUFSIZE); 
     
    639642    // handle object specific part 
    640643    if ( strcmp( info->identifier, "event" ) == 0 ) 
    641       create_calendar_changeinfo( SLOW_SYNC, ctx, buffer, 0, 0 ); 
     644      create_calendar_changeinfo( SLOW_SYNC, oinfo, sink, ctx, buffer, 0, 0 ); 
    642645    else if ( strcmp( info->identifier, "contact" ) == 0 ) 
    643       create_addressbook_changeinfo( SLOW_SYNC, ctx, buffer, 0, 0 ); 
     646      create_addressbook_changeinfo( SLOW_SYNC, sink, ctx, buffer, 0, 0 ); 
    644647    else if ( strcmp( info->identifier, "note" ) == 0 ) 
    645      create_notebook_changeinfo( SLOW_SYNC, ctx, buffer, 0, 0 ); 
     648     create_notebook_changeinfo( SLOW_SYNC, sink, ctx, buffer, 0, 0 ); 
    646649 
    647650  } else { 
     
    726729        // handle object specific part 
    727730        if ( strcmp( info->identifier, "event" ) == 0 ) 
    728           create_calendar_changeinfo(FAST_SYNC, ctx, data, luid, type); 
     731          create_calendar_changeinfo(FAST_SYNC, oinfo, sink, ctx, data, luid, type); 
    729732        else if ( strcmp( info->identifier, "contact" ) == 0 ) 
    730           create_addressbook_changeinfo(FAST_SYNC, ctx, data, luid, type); 
     733          create_addressbook_changeinfo(FAST_SYNC, sink, ctx, data, luid, type); 
    731734        else if ( strcmp( info->identifier, "note" ) == 0 ) 
    732           create_notebook_changeinfo(FAST_SYNC, ctx, data, luid, type); 
     735          create_notebook_changeinfo(FAST_SYNC, sink, ctx, data, luid, type); 
    733736      } 
    734737 
     
    10161019 
    10171020 
    1018   if (!get_generic_changeinfo(env, sink, ctx, &datainfo, &error)) 
     1021  if (!get_generic_changeinfo(env, info, ctx, &datainfo, &error)) 
    10191022    goto error; 
    10201023 
     
    10351038static void irmcContactGetChangeinfo(void *data, OSyncPluginInfo *info, OSyncContext *ctx) 
    10361039{ 
    1037   osync_trace(TRACE_ENTRY, "%p, %p, %p)", __func__, data, info, ctx); 
     1040  osync_trace(TRACE_ENTRY, "%s(%p,%p,%p)", __func__, data, info, ctx); 
    10381041  OSyncError *error = 0; 
    10391042 
     
    10511054  datainfo.change_counter = &(database->changecounter); 
    10521055 
    1053   if (!get_generic_changeinfo(env, sink, ctx, &datainfo, &error)) 
     1056  if (!get_generic_changeinfo(env, info, ctx, &datainfo, &error)) 
    10541057    goto error; 
    10551058 
     
    10861089  datainfo.change_counter = &(database->changecounter); 
    10871090 
    1088   if (!get_generic_changeinfo(env, sink, ctx, &datainfo, &error)) 
     1091  if (!get_generic_changeinfo(env, info, ctx, &datainfo, &error)) 
    10891092    goto error; 
    10901093