summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Alfarano <cosimo.alfarano@collabora.co.uk>2010-02-24 15:06:44 +0000
committerDanielle Madeley <danielle.madeley@collabora.co.uk>2010-02-25 11:30:49 +1100
commit4b5bd4a42f4b94d84d9efad271b3f4ab4f20210f (patch)
treeda698c889c322c1c8f8a39175c424a0d3cb3d699
parent45a15b2a1e69bfeac4aeeae042e2ac9e14a05849 (diff)
Adding a GIO's _finish() method to each async API in log-manager.
-rw-r--r--telepathy-logger/log-manager-priv.h3
-rw-r--r--telepathy-logger/log-manager.c181
-rw-r--r--telepathy-logger/log-manager.h21
-rw-r--r--tests/test-searches.c2
4 files changed, 152 insertions, 55 deletions
diff --git a/telepathy-logger/log-manager-priv.h b/telepathy-logger/log-manager-priv.h
index 8290eb28b..9c6ed6f55 100644
--- a/telepathy-logger/log-manager-priv.h
+++ b/telepathy-logger/log-manager-priv.h
@@ -30,6 +30,9 @@
gboolean tpl_log_manager_add_message (TplLogManager *manager,
TplLogEntry *message, GError **error);
+gboolean tpl_log_manager_add_message_async_finish (GAsyncResult *result,
+ GError **error);
+
void tpl_log_manager_add_message_async (TplLogManager *manager,
TplLogEntry *message, GAsyncReadyCallback callback, gpointer user_data);
diff --git a/telepathy-logger/log-manager.c b/telepathy-logger/log-manager.c
index 0fd84e998..98ebe376a 100644
--- a/telepathy-logger/log-manager.c
+++ b/telepathy-logger/log-manager.c
@@ -754,17 +754,6 @@ tpl_log_manager_chat_info_free (TplLogManagerChatInfo *data)
}
-GList *
-tpl_log_manager_async_operation_finish (GAsyncResult *result,
- GError **error)
-{
- g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
- GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
- return g_simple_async_result_get_op_res_gpointer (simple);
-}
-
-
static void
_tpl_log_manager_async_operation_cb (GObject *source_object,
GAsyncResult *result,
@@ -778,28 +767,21 @@ _tpl_log_manager_async_operation_cb (GObject *source_object,
tpl_log_manager_async_data_free (async_data);
}
+/* end of Async common function */
-static void
-_tpl_log_manager_call_async_operation (TplLogManager *manager,
- GSimpleAsyncThreadFunc
- operation_thread_func,
- TplLogManagerAsyncData *async_data,
- GAsyncReadyCallback callback)
+/* Start of add_message async implementation */
+gboolean
+tpl_log_manager_add_message_async_finish (GAsyncResult *result,
+ GError **error)
{
- GSimpleAsyncResult *simple;
-
- simple = g_simple_async_result_new (G_OBJECT (manager),
- _tpl_log_manager_async_operation_cb, async_data,
- tpl_log_manager_async_operation_finish);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- g_simple_async_result_run_in_thread (simple, operation_thread_func, 0,
- NULL);
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+ return g_simple_async_result_get_op_res_gboolean (simple);
}
-/* end of Async common function */
-/* Start of add_message async implementation */
static void
_add_message_async_thread (GSimpleAsyncResult *simple,
GObject *object,
@@ -832,6 +814,7 @@ tpl_log_manager_add_message_async (TplLogManager *manager,
{
TplLogManagerChatInfo *chat_info = tpl_log_manager_chat_info_new ();
TplLogManagerAsyncData *async_data = tpl_log_manager_async_data_new ();
+ GSimpleAsyncResult *simple;
tpl_call_with_err_if_fail (TPL_IS_LOG_MANAGER (manager), manager,
TPL_LOG_MANAGER, FAILED,
@@ -851,14 +834,28 @@ tpl_log_manager_add_message_async (TplLogManager *manager,
async_data->cb = callback;
async_data->user_data = user_data;
- _tpl_log_manager_call_async_operation (manager, _add_message_async_thread,
- async_data, callback);
-}
+ simple = g_simple_async_result_new (G_OBJECT (manager),
+ _tpl_log_manager_async_operation_cb, async_data,
+ tpl_log_manager_add_message_async_finish);
-/* End of get_dates async implementation */
+ g_simple_async_result_run_in_thread (simple, _add_message_async_thread, 0,
+ NULL);
+}
+/* End of add_message async implementation */
/* Start of get_dates async implementation */
+GList *
+tpl_log_manager_get_dates_async_finish (GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+
static void
_get_dates_async_result_free (gpointer data)
{
@@ -901,6 +898,7 @@ tpl_log_manager_get_dates_async (TplLogManager *manager,
{
TplLogManagerChatInfo *chat_info = tpl_log_manager_chat_info_new ();
TplLogManagerAsyncData *async_data = tpl_log_manager_async_data_new ();
+ GSimpleAsyncResult *simple;
tpl_call_with_err_if_fail (TPL_IS_LOG_MANAGER (manager), manager,
TPL_LOG_MANAGER, FAILED,
@@ -926,13 +924,27 @@ tpl_log_manager_get_dates_async (TplLogManager *manager,
async_data->cb = callback;
async_data->user_data = user_data;
- _tpl_log_manager_call_async_operation (manager, _get_dates_async_thread,
- async_data, callback);
-}
+ simple = g_simple_async_result_new (G_OBJECT (manager),
+ _tpl_log_manager_async_operation_cb, async_data,
+ tpl_log_manager_get_dates_async_finish);
+ g_simple_async_result_run_in_thread (simple, _get_dates_async_thread, 0,
+ NULL);
+}
/* End of get_dates async implementation */
/* Start of get_messages_for_date async implementation */
+GList *
+tpl_log_manager_get_messages_for_date_async_finish (GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+
static void
_get_messages_for_date_async_result_free (gpointer data)
{
@@ -978,6 +990,7 @@ tpl_log_manager_get_messages_for_date_async (TplLogManager *manager,
{
TplLogManagerChatInfo *chat_info = tpl_log_manager_chat_info_new ();
TplLogManagerAsyncData *async_data = tpl_log_manager_async_data_new ();
+ GSimpleAsyncResult *simple;
tpl_call_with_err_if_fail (TPL_IS_LOG_MANAGER (manager), manager,
TPL_LOG_MANAGER, FAILED,
@@ -1008,14 +1021,28 @@ tpl_log_manager_get_messages_for_date_async (TplLogManager *manager,
async_data->cb = callback;
async_data->user_data = user_data;
- _tpl_log_manager_call_async_operation (manager,
- _get_messages_for_date_async_thread,
- async_data, callback);
+ simple = g_simple_async_result_new (G_OBJECT (manager),
+ _tpl_log_manager_async_operation_cb, async_data,
+ tpl_log_manager_get_messages_for_date_async_finish);
+
+ g_simple_async_result_run_in_thread (simple,
+ _get_messages_for_date_async_thread, 0, NULL);
}
/* End of get_messages_for_date async implementation */
/* Start of get_filtered_messages async implementation */
+GList *
+tpl_log_manager_get_filtered_messages_async_finish (GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+
static void
_get_filtered_messages_async_result_free (gpointer data)
{
@@ -1028,7 +1055,7 @@ _get_filtered_messages_async_result_free (gpointer data)
}
static void
-_get_filtered_messages_thread (GSimpleAsyncResult *simple,
+_get_filtered_messages_async_thread (GSimpleAsyncResult *simple,
GObject *object,
GCancellable *cancellable)
{
@@ -1061,6 +1088,7 @@ tpl_log_manager_get_filtered_messages_async (TplLogManager *manager,
{
TplLogManagerChatInfo *chat_info = tpl_log_manager_chat_info_new ();
TplLogManagerAsyncData *async_data = tpl_log_manager_async_data_new ();
+ GSimpleAsyncResult *simple;
tpl_call_with_err_if_fail (TPL_IS_LOG_MANAGER (manager), manager,
TPL_LOG_MANAGER, FAILED,
@@ -1097,13 +1125,28 @@ tpl_log_manager_get_filtered_messages_async (TplLogManager *manager,
async_data->cb = callback;
async_data->user_data = user_data;
- _tpl_log_manager_call_async_operation (manager,
- _get_filtered_messages_thread, async_data, callback);
+ simple = g_simple_async_result_new (G_OBJECT (manager),
+ _tpl_log_manager_async_operation_cb, async_data,
+ tpl_log_manager_get_filtered_messages_async_finish);
+
+ g_simple_async_result_run_in_thread (simple,
+ _get_filtered_messages_async_thread, 0, NULL);
}
/* End of get_filtered_messages async implementation */
/* Start of get_chats async implementation */
+GList *
+tpl_log_manager_get_chats_async_finish (GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+
static void
_get_chats_async_result_free (gpointer data)
{
@@ -1116,7 +1159,7 @@ _get_chats_async_result_free (gpointer data)
static void
-_get_chats_thread (GSimpleAsyncResult *simple,
+_get_chats_async_thread (GSimpleAsyncResult *simple,
GObject *object,
GCancellable *cancellable)
{
@@ -1142,6 +1185,7 @@ tpl_log_manager_get_chats_async (TplLogManager *manager,
{
TplLogManagerChatInfo *chat_info = tpl_log_manager_chat_info_new ();
TplLogManagerAsyncData *async_data = tpl_log_manager_async_data_new ();
+ GSimpleAsyncResult *simple;
tpl_call_with_err_if_fail (TPL_IS_LOG_MANAGER (manager), manager,
TPL_LOG_MANAGER, FAILED,
@@ -1161,13 +1205,28 @@ tpl_log_manager_get_chats_async (TplLogManager *manager,
async_data->cb = callback;
async_data->user_data = user_data;
- _tpl_log_manager_call_async_operation (manager, _get_chats_thread,
- async_data, callback);
-}
+ simple = g_simple_async_result_new (G_OBJECT (manager),
+ _tpl_log_manager_async_operation_cb, async_data,
+ tpl_log_manager_get_chats_async_finish);
-/* End of get_filtered_messages async implementation */
+ g_simple_async_result_run_in_thread (simple, _get_chats_async_thread, 0,
+ NULL);
+}
+/* End of get_chats async implementation */
/* Start of tpl_log_manager_search_in_identifier_chats_new async implementation */
+GList *
+tpl_log_manager_search_in_identifier_chats_new_async_finish (
+ GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+
static void
_search_in_identifier_chats_new_async_result_free (gpointer data)
{
@@ -1180,7 +1239,7 @@ _search_in_identifier_chats_new_async_result_free (gpointer data)
static void
-_search_in_identifier_chats_new_thread (GSimpleAsyncResult *simple,
+_search_in_identifier_chats_new_async_thread (GSimpleAsyncResult *simple,
GObject *object,
GCancellable *cancellable)
{
@@ -1209,6 +1268,7 @@ tpl_log_manager_search_in_identifier_chats_new_async (TplLogManager *manager,
{
TplLogManagerChatInfo *chat_info = tpl_log_manager_chat_info_new ();
TplLogManagerAsyncData *async_data = tpl_log_manager_async_data_new ();
+ GSimpleAsyncResult *simple;
tpl_call_with_err_if_fail (TPL_IS_LOG_MANAGER (manager), manager,
TPL_LOG_MANAGER, FAILED,
@@ -1230,13 +1290,28 @@ tpl_log_manager_search_in_identifier_chats_new_async (TplLogManager *manager,
async_data->cb = callback;
async_data->user_data = user_data;
- _tpl_log_manager_call_async_operation (manager,
- _search_in_identifier_chats_new_thread, async_data, callback);
+ simple = g_simple_async_result_new (G_OBJECT (manager),
+ _tpl_log_manager_async_operation_cb, async_data,
+ tpl_log_manager_search_in_identifier_chats_new_async_finish);
+
+ g_simple_async_result_run_in_thread (simple,
+ _search_in_identifier_chats_new_async_thread, 0, NULL);
}
/* End of tpl_log_manager_search_in_identifier_chats_new async implementation */
/* Start of tpl_log_manager_search_new async implementation */
+GList *
+tpl_log_manager_search_new_async_finish (GAsyncResult *result,
+ GError **error)
+{
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+
static void
_search_new_async_result_free (gpointer data)
{
@@ -1249,7 +1324,7 @@ _search_new_async_result_free (gpointer data)
static void
-_search_new_thread (GSimpleAsyncResult *simple,
+_search_new_async_thread (GSimpleAsyncResult *simple,
GObject *object,
GCancellable *cancellable)
{
@@ -1275,6 +1350,7 @@ tpl_log_manager_search_new_async (TplLogManager *manager,
{
TplLogManagerChatInfo *chat_info = tpl_log_manager_chat_info_new ();
TplLogManagerAsyncData *async_data = tpl_log_manager_async_data_new ();
+ GSimpleAsyncResult *simple;
tpl_call_with_err_if_fail (TPL_IS_LOG_MANAGER (manager), manager,
TPL_LOG_MANAGER, FAILED,
@@ -1290,8 +1366,11 @@ tpl_log_manager_search_new_async (TplLogManager *manager,
async_data->cb = callback;
async_data->user_data = user_data;
- _tpl_log_manager_call_async_operation (manager, _search_new_thread,
- async_data, callback);
-}
+ simple = g_simple_async_result_new (G_OBJECT (manager),
+ _tpl_log_manager_async_operation_cb, async_data,
+ tpl_log_manager_search_new_async_finish);
+ g_simple_async_result_run_in_thread (simple, _search_new_async_thread, 0,
+ NULL);
+}
/* End of tpl_log_manager_search_new async implementation */
diff --git a/telepathy-logger/log-manager.h b/telepathy-logger/log-manager.h
index 4f71bddeb..f5c037faf 100644
--- a/telepathy-logger/log-manager.h
+++ b/telepathy-logger/log-manager.h
@@ -76,9 +76,6 @@ typedef struct
GType tpl_log_manager_get_type (void);
-GList *tpl_log_manager_async_operation_finish (GAsyncResult *result,
- GError **error);
-
TplLogManager *tpl_log_manager_dup_singleton (void);
gboolean tpl_log_manager_exists (TplLogManager *manager,
@@ -87,6 +84,9 @@ gboolean tpl_log_manager_exists (TplLogManager *manager,
GList *tpl_log_manager_get_dates (TplLogManager *manager,
TpAccount *account, const gchar *chat_id, gboolean chatroom);
+GList *tpl_log_manager_get_dates_async_finish (GAsyncResult *result,
+ GError **error);
+
void tpl_log_manager_get_dates_async (TplLogManager *manager,
TpAccount *account, const gchar *chat_id, gboolean is_chatroom,
GAsyncReadyCallback callback, gpointer user_data);
@@ -95,6 +95,9 @@ GList *tpl_log_manager_get_messages_for_date (TplLogManager *manager,
TpAccount *account, const gchar *chat_id, gboolean chatroom,
const gchar *date);
+GList *tpl_log_manager_get_messages_for_date_async_finish (GAsyncResult *result,
+ GError **error);
+
void tpl_log_manager_get_messages_for_date_async (TplLogManager *manager,
TpAccount *account, const gchar *chat_id, gboolean is_chatroom,
const gchar *date, GAsyncReadyCallback callback, gpointer user_data);
@@ -103,6 +106,9 @@ GList *tpl_log_manager_get_filtered_messages (TplLogManager *manager,
TpAccount *account, const gchar *chat_id, gboolean chatroom,
guint num_messages, TplLogMessageFilter filter, gpointer user_data);
+GList *tpl_log_manager_get_filtered_messages_async_finish (GAsyncResult *result,
+ GError **error);
+
void tpl_log_manager_get_filtered_messages_async (TplLogManager *manager,
TpAccount *account, const gchar *chat_id, gboolean is_chatroom,
guint num_messages, TplLogMessageFilter filter, gpointer filter_user_data,
@@ -110,12 +116,18 @@ void tpl_log_manager_get_filtered_messages_async (TplLogManager *manager,
GList *tpl_log_manager_get_chats (TplLogManager *manager, TpAccount *account);
+GList *tpl_log_manager_get_chats_async_finish (GAsyncResult *result,
+ GError **error);
+
void tpl_log_manager_get_chats_async (TplLogManager *manager,
TpAccount *account, GAsyncReadyCallback callback, gpointer user_data);
GList *tpl_log_manager_search_in_identifier_chats_new (TplLogManager *manager,
TpAccount *account, gchar const *chat_id, const gchar *text);
+GList *tpl_log_manager_search_in_identifier_chats_new_async_finish (
+ GAsyncResult *result, GError **error);
+
void tpl_log_manager_search_in_identifier_chats_new_async (TplLogManager *manager,
TpAccount *account, gchar const *chat_id, const gchar *text,
GAsyncReadyCallback callback, gpointer user_data);
@@ -123,6 +135,9 @@ void tpl_log_manager_search_in_identifier_chats_new_async (TplLogManager *manage
GList *tpl_log_manager_search_new (TplLogManager *manager,
const gchar *text);
+GList *tpl_log_manager_search_new_async_finish (GAsyncResult *result,
+ GError **error);
+
void tpl_log_manager_search_new_async (TplLogManager *manager,
const gchar *text, GAsyncReadyCallback callback, gpointer user_data);
diff --git a/tests/test-searches.c b/tests/test-searches.c
index 5d573c9cf..6a9b142c0 100644
--- a/tests/test-searches.c
+++ b/tests/test-searches.c
@@ -12,7 +12,7 @@ static GMainLoop *loop = NULL;
static void
got_dates_cb (GObject *obj, GAsyncResult *result, gpointer user_data)
{
- GList *ret = tpl_log_manager_async_operation_finish (result, NULL);
+ GList *ret = tpl_log_manager_get_dates_async_finish (result, NULL);
for (; ret != NULL; ret = g_list_next (ret))
{