Changeset 3286

Show
Ignore:
Timestamp:
04/27/08 14:45:27 (3 months ago)
Author:
dgollub
Message:

Make useof OSyncList in osync_db

Make use of OSyncList instead of GList, to provide a clean API without
requiring any direct includes of glib.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/opensync/db/opensync_db.c

    r3285 r3286  
    155155 
    156156/** 
    157  * @brief Exectues a SQL query and fill all requested data in a GList.  
     157 * @brief Exectues a SQL query and fill all requested data in a OSyncList.  
    158158 *        Check error with osync_error_is_set(). 
    159159 *  
     
    161161 * @param query SQL database query  
    162162 * @param error Pointer to a error struct  
    163  * @return Returns pointer to GList which contains the each result as another GList ptr. Freeing is recommend with osync_db_free_list()  
    164  */ 
    165 GList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error) 
     163 * @return Returns pointer to OSyncList which contains the each result as another OSyncList ptr. Freeing is recommend with osync_db_free_list()  
     164 */ 
     165OSyncList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error) 
    166166{ 
    167167        osync_trace(TRACE_ENTRY, "%s(%p, %s, %p)", __func__, db, query, error); 
     
    170170        osync_assert(query); 
    171171 
    172         GList *table = NULL; 
     172        OSyncList *table = NULL; 
    173173        int i, j, column_count = 0; 
    174174        int numrows = 0, numcolumns = 0; 
     
    188188 
    189189        for (j=0; j < numrows; j++) { 
    190                 GList *row = NULL; 
     190                OSyncList *row = NULL; 
    191191                for (i=0; i < numcolumns; i++) 
    192192                        /* speed up - prepend instead of append */ 
    193                         row = g_list_prepend(row, g_strdup(result[column_count++])); 
     193                        row = osync_list_prepend(row, g_strdup(result[column_count++])); 
    194194 
    195195                /* items got prepended, reverse the list again */ 
    196                 row = g_list_reverse(row); 
     196                row = osync_list_reverse(row); 
    197197 
    198198                /* speed up - prepend instead of append. */ 
    199                 table = g_list_prepend(table, row); 
     199                table = osync_list_prepend(table, row); 
    200200        } 
    201201 
    202202        /* items got prepended, reverse the list again */ 
    203         table = g_list_reverse(table); 
     203        table = osync_list_reverse(table); 
    204204 
    205205        sqlite3_free_table(result); 
     
    212212 * @brief Frees the full result of osync_db_query_table(). 
    213213 * 
    214  * @param list Result GList pointer of osync_db_query_table() 
    215  */ 
    216 void osync_db_free_list(GList *list) { 
     214 * @param list Result OSyncList pointer of osync_db_query_table() 
     215 */ 
     216void osync_db_free_list(OSyncList *list) { 
    217217        osync_trace(TRACE_ENTRY, "%s(%p)", __func__, list); 
    218218 
    219         GList *row; 
     219        OSyncList *row; 
    220220        for (row = list; row; row = row->next) { 
    221                 g_list_foreach((GList *) row->data, (GFunc) g_free, NULL); 
    222                 g_list_free((GList *) row->data); 
    223         } 
    224  
    225         g_list_free(list); 
     221                osync_list_foreach((OSyncList *) row->data, (GFunc) g_free, NULL); 
     222                osync_list_free((OSyncList *) row->data); 
     223        } 
     224 
     225        osync_list_free(list); 
    226226 
    227227        osync_trace(TRACE_EXIT, "%s", __func__); 
  • trunk/opensync/db/opensync_db.h

    r3260 r3286  
    3838OSYNC_EXPORT int osync_db_query_single_int(OSyncDB *db, const char *query, OSyncError **error); 
    3939OSYNC_EXPORT osync_bool osync_db_query(OSyncDB *db, const char *query, OSyncError **error); 
    40 OSYNC_EXPORT GList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error); 
    41 OSYNC_EXPORT void osync_db_free_list(GList *list); 
     40OSYNC_EXPORT OSyncList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error); 
     41OSYNC_EXPORT void osync_db_free_list(OSyncList *list); 
    4242 
    4343OSYNC_EXPORT osync_bool osync_db_bind_blob(OSyncDB *db, const char *query, const char *data, unsigned int size, OSyncError **error);