« Return to Thread: [patch 00/13] [RFC] Hashtable improvements and API changes

[patch 02/13] Make useof OSyncList in osync_db

by Daniel Gollub :: Rate this Message:

Reply to Author | View in Thread

Make use of OSyncList instead of GList, to provide a clean API without
requiring any direct includes of glib.
---
 opensync/db/opensync_db.c |   30 +++++++++++++++---------------
 opensync/db/opensync_db.h |    4 ++--
 2 files changed, 17 insertions(+), 17 deletions(-)

Index: opensync/opensync/db/opensync_db.c
===================================================================
--- opensync.orig/opensync/db/opensync_db.c
+++ opensync/opensync/db/opensync_db.c
@@ -154,22 +154,22 @@ osync_bool osync_db_query(OSyncDB *db, c
 }
 
 /**
- * @brief Exectues a SQL query and fill all requested data in a GList.
+ * @brief Exectues a SQL query and fill all requested data in a OSyncList.
  *        Check error with osync_error_is_set().
  *
  * @param db Pointer to database struct
  * @param query SQL database query
  * @param error Pointer to a error struct
- * @return Returns pointer to GList which contains the each result as another GList ptr. Freeing is recommend with osync_db_free_list()
+ * @return Returns pointer to OSyncList which contains the each result as another OSyncList ptr. Freeing is recommend with osync_db_free_list()
  */
-GList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error)
+OSyncList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error)
 {
  osync_trace(TRACE_ENTRY, "%s(%p, %s, %p)", __func__, db, query, error);
 
  osync_assert(db);
  osync_assert(query);
 
- GList *table = NULL;
+ OSyncList *table = NULL;
  int i, j, column_count = 0;
  int numrows = 0, numcolumns = 0;
  char **result = NULL;
@@ -187,20 +187,20 @@ GList *osync_db_query_table(OSyncDB *db,
  column_count = numcolumns;
 
  for (j=0; j < numrows; j++) {
- GList *row = NULL;
+ OSyncList *row = NULL;
  for (i=0; i < numcolumns; i++)
  /* speed up - prepend instead of append */
- row = g_list_prepend(row, g_strdup(result[column_count++]));
+ row = osync_list_prepend(row, g_strdup(result[column_count++]));
 
  /* items got prepended, reverse the list again */
- row = g_list_reverse(row);
+ row = osync_list_reverse(row);
 
  /* speed up - prepend instead of append. */
- table = g_list_prepend(table, row);
+ table = osync_list_prepend(table, row);
  }
 
  /* items got prepended, reverse the list again */
- table = g_list_reverse(table);
+ table = osync_list_reverse(table);
 
  sqlite3_free_table(result);
 
@@ -211,18 +211,18 @@ GList *osync_db_query_table(OSyncDB *db,
 /**
  * @brief Frees the full result of osync_db_query_table().
  *
- * @param list Result GList pointer of osync_db_query_table()
+ * @param list Result OSyncList pointer of osync_db_query_table()
  */
-void osync_db_free_list(GList *list) {
+void osync_db_free_list(OSyncList *list) {
  osync_trace(TRACE_ENTRY, "%s(%p)", __func__, list);
 
- GList *row;
+ OSyncList *row;
  for (row = list; row; row = row->next) {
- g_list_foreach((GList *) row->data, (GFunc) g_free, NULL);
- g_list_free((GList *) row->data);
+ osync_list_foreach((OSyncList *) row->data, (GFunc) g_free, NULL);
+ osync_list_free((OSyncList *) row->data);
  }
 
- g_list_free(list);
+ osync_list_free(list);
 
  osync_trace(TRACE_EXIT, "%s", __func__);
 }
Index: opensync/opensync/db/opensync_db.h
===================================================================
--- opensync.orig/opensync/db/opensync_db.h
+++ opensync/opensync/db/opensync_db.h
@@ -37,8 +37,8 @@ OSYNC_EXPORT int osync_db_count(OSyncDB
 OSYNC_EXPORT char *osync_db_query_single_string(OSyncDB *db, const char *query, OSyncError **error);
 OSYNC_EXPORT int osync_db_query_single_int(OSyncDB *db, const char *query, OSyncError **error);
 OSYNC_EXPORT osync_bool osync_db_query(OSyncDB *db, const char *query, OSyncError **error);
-OSYNC_EXPORT GList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error);
-OSYNC_EXPORT void osync_db_free_list(GList *list);
+OSYNC_EXPORT OSyncList *osync_db_query_table(OSyncDB *db, const char *query, OSyncError **error);
+OSYNC_EXPORT void osync_db_free_list(OSyncList *list);
 
 OSYNC_EXPORT osync_bool osync_db_bind_blob(OSyncDB *db, const char *query, const char *data, unsigned int size, OSyncError **error);
 OSYNC_EXPORT int osync_db_get_blob(OSyncDB *db, const char *query, char **data, unsigned int *size, OSyncError **error);


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Opensync-devel mailing list
Opensync-devel@...
https://lists.sourceforge.net/lists/listinfo/opensync-devel

 « Return to Thread: [patch 00/13] [RFC] Hashtable improvements and API changes

LightInTheBox - Buy quality products at wholesale price