diff options
-rw-r--r-- | telepathy-logger/log-manager.c | 21 | ||||
-rw-r--r-- | telepathy-logger/log-manager.h | 3 |
2 files changed, 19 insertions, 5 deletions
diff --git a/telepathy-logger/log-manager.c b/telepathy-logger/log-manager.c index 8049951..81771c7 100644 --- a/telepathy-logger/log-manager.c +++ b/telepathy-logger/log-manager.c @@ -1073,15 +1073,28 @@ tpl_log_manager_get_messages_for_date_async (TplLogManager *manager, /* Start of get_filtered_messages async implementation */ -GList * +gboolean tpl_log_manager_get_filtered_messages_finish (TplLogManager *self, GAsyncResult *result, + GList **messages, GError **error) { - g_return_val_if_fail (error == NULL || *error == NULL, NULL); + GSimpleAsyncResult *simple; - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); - return g_simple_async_result_get_op_res_gpointer (simple); + g_return_val_if_fail (TPL_IS_LOG_MANAGER (self), FALSE); + g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (g_simple_async_result_is_valid (result, + G_OBJECT (self), tpl_log_manager_get_filtered_messages_async), FALSE); + + simple = G_SIMPLE_ASYNC_RESULT (result); + + if (g_simple_async_result_propagate_error (simple, error)) + return FALSE; + + if (messages != NULL) + *messages = g_simple_async_result_get_op_res_gpointer (simple); + + return TRUE; } diff --git a/telepathy-logger/log-manager.h b/telepathy-logger/log-manager.h index a673b89..756b29c 100644 --- a/telepathy-logger/log-manager.h +++ b/telepathy-logger/log-manager.h @@ -111,8 +111,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_finish (TplLogManager *self, +gboolean tpl_log_manager_get_filtered_messages_finish (TplLogManager *self, GAsyncResult *result, + GList **messages, GError **error); void tpl_log_manager_get_filtered_messages_async (TplLogManager *manager, |