Changeset 3596

Show
Ignore:
Timestamp:
04/17/08 11:42:30
Author:
pvanhoof
Message:
        • Removed a tny_folder_get_headers (deprecated API)
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r3595 r3596  
    22 
    33        * Corrections to reference handling for TnyCamelSendQueue 
     4        * Removed a tny_folder_get_headers (deprecated API) 
    45 
    562008-04-16  José Dapena Paz  <jdapena@igalia.com> 
  • trunk/libtinymail-camel/tny-camel-send-queue.c

    r3595 r3596  
    334334} MainThreadInfo; 
    335335 
     336typedef struct { 
     337        TnyFolder *folder; 
     338        TnyList *list; 
     339        gboolean refresh; 
     340        GError **err; 
     341 
     342        GCond* condition; 
     343        gboolean had_callback; 
     344        GMutex *mutex; 
     345 
     346} GetHeadersSync; 
     347 
     348static void  
     349get_headers_async (TnyFolder *self, gboolean cancelled, TnyList *headers, GError *err, gpointer user_data) 
     350{ 
     351        GetHeadersSync *info = (GetHeadersSync *) user_data; 
     352 
     353        if (err && info->err) 
     354                *info->err = g_error_copy (err); 
     355 
     356        g_mutex_lock (info->mutex); 
     357        g_cond_broadcast (info->condition); 
     358        info->had_callback = TRUE; 
     359        g_mutex_unlock (info->mutex); 
     360} 
     361 
     362static void 
     363get_headers_sync (TnyFolder *folder, TnyList *list, gboolean refresh, GError **err) 
     364{ 
     365        GetHeadersSync *info = g_slice_new0 (GetHeadersSync); 
     366 
     367        info->mutex = g_mutex_new (); 
     368        info->condition = g_cond_new (); 
     369        info->had_callback = FALSE; 
     370 
     371        info->folder = g_object_ref (folder); 
     372        info->list = g_object_ref (list); 
     373        info->refresh = refresh; 
     374        info->err = err; 
     375 
     376        tny_folder_get_headers_async (folder, list, refresh,  
     377                        get_headers_async, NULL, info); 
     378 
     379        g_mutex_lock (info->mutex); 
     380        if (!info->had_callback) 
     381                g_cond_wait (info->condition, info->mutex); 
     382        g_mutex_unlock (info->mutex); 
     383 
     384        g_mutex_free (info->mutex); 
     385        g_cond_free (info->condition); 
     386 
     387        g_object_unref (info->folder); 
     388        g_object_unref (info->list); 
     389        g_slice_free (GetHeadersSync, info); 
     390} 
     391 
    336392static gpointer 
    337393thread_main (gpointer data) 
     
    351407        { 
    352408                GError *terror = NULL; 
    353                 tny_folder_get_headers (info->outbox, list, TRUE, &terror); 
     409                get_headers_sync (info->outbox, list, TRUE, &terror); 
    354410 
    355411                if (terror != NULL) 
     
    386442                        TnyIterator *giter = NULL; 
    387443 
    388                         if (tny_device_is_online (device)) 
    389                                 tny_folder_get_headers (info->outbox, headers, TRUE, &ferror); 
     444                        if (tny_device_is_online (device))  
     445                                get_headers_sync (info->outbox, headers, TRUE, &ferror); 
    390446                        else { 
    391447                                priv->is_running = FALSE;