Changeset 3295

Show
Ignore:
Timestamp:
04/27/08 14:50:57 (5 months ago)
Author:
dgollub
Message:

Port mock-sync plugin to new osync_hashtable API.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tests/mock-plugin/mock_sync.c

    r3265 r3295  
    367367                        relative_filename = g_build_filename(subdir, de, NULL); 
    368368                         
    369                 osync_hashtable_report(directory->hashtable, relative_filename); 
    370369                osync_trace(TRACE_INTERNAL, "path2 %s %s", filename, relative_filename); 
    371370                 
     
    380379                        char *hash = mock_generate_hash(&buf); 
    381380                         
    382                         OSyncChangeType type = osync_hashtable_get_changetype(directory->hashtable, relative_filename, hash); 
     381                        /* Report normal files */ 
     382                        OSyncChange *change = osync_change_new(&error); 
     383                        osync_assert(change); 
     384                         
     385                        osync_change_set_uid(change, relative_filename); 
     386 
     387                        osync_change_set_hash(change, hash); 
     388                        g_free(hash); 
     389 
     390                        OSyncChangeType type = osync_hashtable_get_changetype(directory->hashtable, change); 
     391                         
     392                        osync_change_set_changetype(change, type); 
     393                        osync_hashtable_update_change(directory->hashtable, change); 
     394 
    383395                        if (type == OSYNC_CHANGE_TYPE_UNMODIFIED) { 
    384                                 g_free(hash); 
    385396                                g_free(filename); 
    386397                                g_free(relative_filename); 
    387398                                continue; 
    388399                        } 
    389                         osync_hashtable_update_hash(directory->hashtable, type, relative_filename, hash); 
    390                          
    391                         /* Report normal files */ 
    392                         OSyncChange *change = osync_change_new(&error); 
    393                         osync_assert(change); 
    394                          
    395                         osync_change_set_uid(change, relative_filename); 
    396                         osync_change_set_hash(change, hash); 
    397                         osync_change_set_changetype(change, type); 
    398  
    399                         g_free(hash); 
    400                          
     400 
    401401                        OSyncFileFormat *file = osync_try_malloc0(sizeof(OSyncFileFormat), &error); 
    402402                        osync_assert(file); 
     
    424424         
    425425                        osync_context_report_change(ctx, change); 
    426                          
     426 
    427427                        osync_change_unref(change); 
    428428                } 
     
    450450        dir->committed_all = FALSE; 
    451451 
    452         osync_hashtable_reset_reports(dir->hashtable); 
    453  
    454452        if (mock_get_error(info->memberid, "GET_CHANGES_ERROR")) { 
    455453                osync_context_report_error(ctx, OSYNC_ERROR_EXPECTED, "Triggering GET_CHANGES_ERROR error"); 
     
    475473        mock_report_dir(dir, NULL, ctx, info); 
    476474         
    477         char **uids = osync_hashtable_get_deleted(dir->hashtable); 
    478         for (i = 0; uids[i]; i++) { 
     475        OSyncList *u, *uids = osync_hashtable_get_deleted(dir->hashtable); 
     476        for (u = uids; u; u = u->next) { 
    479477                OSyncChange *change = osync_change_new(&error); 
    480478                osync_assert(change); 
    481                  
    482                 osync_change_set_uid(change, uids[i]); 
     479 
     480                const char *uid = u->data; 
     481                 
     482                osync_change_set_uid(change, uid); 
    483483                osync_change_set_changetype(change, OSYNC_CHANGE_TYPE_DELETED); 
    484484                 
     
    492492                osync_context_report_change(ctx, change); 
    493493                 
    494                 osync_hashtable_update_hash(dir->hashtable, osync_change_get_changetype(change), osync_change_get_uid(change), NULL); 
     494                osync_hashtable_update_change(dir->hashtable, change); 
    495495         
    496496                osync_change_unref(change); 
    497                 g_free(uids[i]); 
    498         } 
    499         g_free(uids); 
     497        } 
    500498         
    501499        osync_context_report_success(ctx); 
     
    534532                stat(filename, &buf); 
    535533                hash = mock_generate_hash(&buf); 
     534                osync_change_set_hash(change, hash); 
     535                g_free(hash); 
    536536        } 
    537537        g_free(filename); 
    538538 
    539         osync_hashtable_update_hash(dir->hashtable, osync_change_get_changetype(change), osync_change_get_uid(change), hash); 
    540         g_free(hash); 
     539 
     540        osync_hashtable_update_change(dir->hashtable, change); 
    541541         
    542542        osync_context_report_success(ctx); 
     
    564564                                stat(filename, &buf); 
    565565                                hash = mock_generate_hash(&buf); 
     566                                osync_change_set_hash(changes[i], hash); 
    566567                        } 
    567568                        g_free(filename); 
    568569 
    569                         osync_hashtable_update_hash(dir->hashtable, osync_change_get_changetype(changes[i]), osync_change_get_uid(changes[i]), hash); 
     570                        osync_hashtable_update_change(dir->hashtable, changes[i]); 
    570571                        osync_context_report_success(contexts[i]); 
    571572                } 
     
    625626        g_free(anchorpath); 
    626627        g_free(path_field); 
     628 
     629        osync_assert(osync_hashtable_save(dir->hashtable, NULL)); 
    627630         
    628631        osync_context_report_success(ctx); 
     
    681684                 
    682685                osync_assert(dir->hashtable); 
     686 
     687                osync_assert(osync_hashtable_load(dir->hashtable, error)); 
    683688 
    684689                osync_objtype_sink_add_objformat(sink, osync_objformat_get_name(dir->objformat)); 
     
    771776         
    772777                if (dir->hashtable) { 
    773                         osync_hashtable_free(dir->hashtable); 
     778                        osync_hashtable_unref(dir->hashtable); 
    774779                        dir->hashtable = NULL; 
    775780                }