diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> | 2011-02-22 19:34:48 -0500 |
---|---|---|
committer | Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> | 2011-02-22 19:34:48 -0500 |
commit | a51796d7f3ed86ae5656ad58b98de64710a21270 (patch) | |
tree | 19d8c0dffc98194dc64bed47be46793337c33ad1 | |
parent | 2fc6dc7fe60e1ea689557d464f45ceea2119cd73 (diff) | |
download | telepathy-logger-a51796d7f3ed86ae5656ad58b98de64710a21270.tar.gz |
Introduce TplEventTypeMask to be able to select event type
-rw-r--r-- | telepathy-logger/log-manager-internal.h | 8 | ||||
-rw-r--r-- | telepathy-logger/log-manager.c | 44 | ||||
-rw-r--r-- | telepathy-logger/log-manager.h | 16 | ||||
-rw-r--r-- | telepathy-logger/log-store-internal.h | 25 | ||||
-rw-r--r-- | telepathy-logger/log-store-pidgin.c | 27 | ||||
-rw-r--r-- | telepathy-logger/log-store-xml.c | 27 | ||||
-rw-r--r-- | telepathy-logger/log-store.c | 34 | ||||
-rw-r--r-- | tests/dbus/test-searches.c | 3 | ||||
-rw-r--r-- | tests/dbus/test-tpl-log-store-pidgin.c | 18 | ||||
-rw-r--r-- | tests/dbus/test-tpl-log-store-xml.c | 26 |
10 files changed, 156 insertions, 72 deletions
diff --git a/telepathy-logger/log-manager-internal.h b/telepathy-logger/log-manager-internal.h index d6a13d7..5ea9718 100644 --- a/telepathy-logger/log-manager-internal.h +++ b/telepathy-logger/log-manager-internal.h @@ -36,16 +36,19 @@ gboolean _tpl_log_manager_register_log_store (TplLogManager *self, GList * _tpl_log_manager_get_dates (TplLogManager *manager, TpAccount *account, - TplEntity *target); + TplEntity *target, + gint type_mask); GList * _tpl_log_manager_get_events_for_date (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, const GDate *date); GList * _tpl_log_manager_get_filtered_events (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, guint num_events, TplLogEventFilter filter, gpointer user_data); @@ -54,7 +57,8 @@ GList * _tpl_log_manager_get_entities (TplLogManager *manager, TpAccount *account); GList * _tpl_log_manager_search (TplLogManager *manager, - const gchar *text); + const gchar *text, + gint type_mask); void _tpl_log_manager_clear (TplLogManager *self); diff --git a/telepathy-logger/log-manager.c b/telepathy-logger/log-manager.c index 5f12413..c2bbbdb 100644 --- a/telepathy-logger/log-manager.c +++ b/telepathy-logger/log-manager.c @@ -97,6 +97,7 @@ typedef struct { TpAccount *account; TplEntity *target; + gint type_mask; GDate *date; guint num_events; TplLogEventFilter filter; @@ -454,7 +455,8 @@ _tpl_log_manager_register_log_store (TplLogManager *self, gboolean tpl_log_manager_exists (TplLogManager *manager, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { GList *l; TplLogManagerPriv *priv; @@ -466,7 +468,8 @@ tpl_log_manager_exists (TplLogManager *manager, for (l = priv->readable_stores; l != NULL; l = g_list_next (l)) { - if (_tpl_log_store_exists (TPL_LOG_STORE (l->data), account, target)) + if (_tpl_log_store_exists (TPL_LOG_STORE (l->data), account, target, + type_mask)) return TRUE; } @@ -492,7 +495,8 @@ tpl_log_manager_exists (TplLogManager *manager, GList * _tpl_log_manager_get_dates (TplLogManager *manager, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { GList *l, *out = NULL; TplLogManagerPriv *priv; @@ -509,7 +513,7 @@ _tpl_log_manager_get_dates (TplLogManager *manager, /* Insert dates of each store in the out list. Keep the out list sorted * and avoid to insert dups. */ - new = _tpl_log_store_get_dates (store, account, target); + new = _tpl_log_store_get_dates (store, account, target, type_mask); while (new) { if (g_list_find_custom (out, new->data, @@ -532,6 +536,7 @@ GList * _tpl_log_manager_get_events_for_date (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, const GDate *date) { GList *l, *out = NULL; @@ -547,7 +552,7 @@ _tpl_log_manager_get_events_for_date (TplLogManager *manager, TplLogStore *store = TPL_LOG_STORE (l->data); out = g_list_concat (out, _tpl_log_store_get_events_for_date (store, - account, target, date)); + account, target, type_mask, date)); } return out; @@ -578,6 +583,7 @@ GList * _tpl_log_manager_get_filtered_events (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, guint num_events, TplLogEventFilter filter, gpointer user_data) @@ -600,7 +606,7 @@ _tpl_log_manager_get_filtered_events (TplLogManager *manager, GList *new; new = _tpl_log_store_get_filtered_events (store, account, target, - num_events, filter, user_data); + type_mask, num_events, filter, user_data); while (new != NULL) { if (i < num_events) @@ -713,7 +719,8 @@ _tpl_log_manager_get_entities (TplLogManager *manager, GList * _tpl_log_manager_search (TplLogManager *manager, - const gchar *text) + const gchar *text, + gint type_mask) { GList *l, *out = NULL; TplLogManagerPriv *priv; @@ -727,7 +734,8 @@ _tpl_log_manager_search (TplLogManager *manager, { TplLogStore *store = TPL_LOG_STORE (l->data); - out = g_list_concat (out, _tpl_log_store_search_new (store, text)); + out = g_list_concat (out, _tpl_log_store_search_new (store, text, + type_mask)); } return out; @@ -920,7 +928,7 @@ _get_dates_async_thread (GSimpleAsyncResult *simple, event_info = async_data->request; lst = _tpl_log_manager_get_dates (async_data->manager, - event_info->account, event_info->target); + event_info->account, event_info->target, event_info->type_mask); g_simple_async_result_set_op_res_gpointer (simple, lst, _list_of_date_free); @@ -932,6 +940,7 @@ _get_dates_async_thread (GSimpleAsyncResult *simple, * @manager: a #TplLogManager * @account: a #TpAccount * @target: a non-NULL #TplEntity + * @type_mask: event type filter see #TplEventTypeMask * @callback: a callback to call when the request is satisfied * @user_data: data to pass to @callback * @@ -945,6 +954,7 @@ void tpl_log_manager_get_dates_async (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, GAsyncReadyCallback callback, gpointer user_data) { @@ -958,6 +968,7 @@ tpl_log_manager_get_dates_async (TplLogManager *manager, event_info->account = g_object_ref (account); event_info->target = g_object_ref (target); + event_info->type_mask = type_mask; async_data->manager = g_object_ref (manager); async_data->request = event_info; @@ -1026,6 +1037,7 @@ _get_events_for_date_async_thread (GSimpleAsyncResult *simple, lst = _tpl_log_manager_get_events_for_date (async_data->manager, event_info->account, event_info->target, + event_info->type_mask, event_info->date); g_simple_async_result_set_op_res_gpointer (simple, lst, @@ -1038,6 +1050,7 @@ _get_events_for_date_async_thread (GSimpleAsyncResult *simple, * @manager: a #TplLogManager * @account: a #TpAccount * @target: a non-NULL #TplEntity + * @type_mask: event type filter see #TplEventTypeMask * @date: a #GDate * @callback: a callback to call when the request is satisfied * @user_data: data to pass to @callback @@ -1048,6 +1061,7 @@ void tpl_log_manager_get_events_for_date_async (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, const GDate *date, GAsyncReadyCallback callback, gpointer user_data) @@ -1063,6 +1077,7 @@ tpl_log_manager_get_events_for_date_async (TplLogManager *manager, event_info->account = g_object_ref (account); event_info->target = g_object_ref (target); + event_info->type_mask = type_mask; event_info->date = copy_date (date); async_data->manager = g_object_ref (manager); @@ -1130,7 +1145,8 @@ _get_filtered_events_async_thread (GSimpleAsyncResult *simple, event_info = async_data->request; lst = _tpl_log_manager_get_filtered_events (async_data->manager, - event_info->account, event_info->target, event_info->num_events, + event_info->account, event_info->target, + event_info->type_mask, event_info->num_events, event_info->filter, event_info->user_data); g_simple_async_result_set_op_res_gpointer (simple, lst, @@ -1143,6 +1159,7 @@ _get_filtered_events_async_thread (GSimpleAsyncResult *simple, * @manager: a #TplLogManager * @account: a #TpAccount * @target: a non-NULL #TplEntity + * @type_mask: event type filter see #TplEventTypeMask * @num_event: number of maximum events to fetch * @filter: an optional filter function * @filter_user_data: user data to pass to @filter @@ -1155,6 +1172,7 @@ void tpl_log_manager_get_filtered_events_async (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, guint num_events, TplLogEventFilter filter, gpointer filter_user_data, @@ -1172,6 +1190,7 @@ tpl_log_manager_get_filtered_events_async (TplLogManager *manager, event_info->account = g_object_ref (account); event_info->target = g_object_ref (target); + event_info->type_mask = type_mask; event_info->num_events = num_events; event_info->filter = filter; event_info->user_data = filter_user_data; @@ -1337,7 +1356,7 @@ _search_async_thread (GSimpleAsyncResult *simple, event_info = async_data->request; lst = _tpl_log_manager_search (async_data->manager, - event_info->search_text); + event_info->search_text, event_info->type_mask); g_simple_async_result_set_op_res_gpointer (simple, lst, (GDestroyNotify) tpl_log_manager_search_free); @@ -1348,6 +1367,7 @@ _search_async_thread (GSimpleAsyncResult *simple, * tpl_log_manager_search_async: * @manager: a #TplLogManager * @text: the pattern to search + * @type_mask: event type filter see #TplEventTypeMask * @callback: a callback to call when the request is satisfied * @user_data: data to pass to @callback * @@ -1356,6 +1376,7 @@ _search_async_thread (GSimpleAsyncResult *simple, void tpl_log_manager_search_async (TplLogManager *manager, const gchar *text, + gint type_mask, GAsyncReadyCallback callback, gpointer user_data) { @@ -1366,6 +1387,7 @@ tpl_log_manager_search_async (TplLogManager *manager, g_return_if_fail (TPL_IS_LOG_MANAGER (manager)); event_info->search_text = g_strdup (text); + event_info->type_mask = type_mask; async_data->manager = g_object_ref (manager); async_data->request = event_info; diff --git a/telepathy-logger/log-manager.h b/telepathy-logger/log-manager.h index 2509339..a690f66 100644 --- a/telepathy-logger/log-manager.h +++ b/telepathy-logger/log-manager.h @@ -61,11 +61,10 @@ typedef struct typedef enum { - TPL_EVENT_SEARCH_TEXT = 1 << 0, - TPL_EVENT_SEARCH_TEXT_ROOM = 1 << 1, - TPL_EVENT_SEARCH_CALL = 1 << 2, - TPL_EVENT_SEARCH_ALL = 0xffff -} TplEventSearchType; + TPL_EVENT_MASK_TEXT = 1 << 0, + TPL_EVENT_MASK_ANY = 0xffff +} TplEventTypeMask; + typedef struct { @@ -83,11 +82,13 @@ TplLogManager *tpl_log_manager_dup_singleton (void); gboolean tpl_log_manager_exists (TplLogManager *manager, TpAccount *account, - TplEntity *target); + TplEntity *target, + gint type_mask); void tpl_log_manager_get_dates_async (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, GAsyncReadyCallback callback, gpointer user_data); @@ -99,6 +100,7 @@ gboolean tpl_log_manager_get_dates_finish (TplLogManager *self, void tpl_log_manager_get_events_for_date_async (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, const GDate *date, GAsyncReadyCallback callback, gpointer user_data); @@ -111,6 +113,7 @@ gboolean tpl_log_manager_get_events_for_date_finish (TplLogManager *self, void tpl_log_manager_get_filtered_events_async (TplLogManager *manager, TpAccount *account, TplEntity *target, + gint type_mask, guint num_events, TplLogEventFilter filter, gpointer filter_user_data, @@ -134,6 +137,7 @@ gboolean tpl_log_manager_get_entities_finish (TplLogManager *self, void tpl_log_manager_search_async (TplLogManager *manager, const gchar *text, + gint type_mask, GAsyncReadyCallback callback, gpointer user_data); diff --git a/telepathy-logger/log-store-internal.h b/telepathy-logger/log-store-internal.h index 6a295f2..6f09a6b 100644 --- a/telepathy-logger/log-store-internal.h +++ b/telepathy-logger/log-store-internal.h @@ -63,19 +63,19 @@ typedef struct const gchar * (*get_name) (TplLogStore *self); gboolean (*exists) (TplLogStore *self, TpAccount *account, - TplEntity *target); + TplEntity *target, gint type_mask); gboolean (*add_event) (TplLogStore *self, TplEvent *event, GError **error); GList * (*get_dates) (TplLogStore *self, TpAccount *account, - TplEntity *target); + TplEntity *target, gint type_mask); GList * (*get_events_for_date) (TplLogStore *self, TpAccount *account, - TplEntity *target, const GDate *date); + TplEntity *target, gint type_mask, const GDate *date); GList * (*get_recent_events) (TplLogStore *self, TpAccount *account, - TplEntity *target); + TplEntity *target, gint type_mask); GList * (*get_entities) (TplLogStore *self, TpAccount *account); - GList * (*search_new) (TplLogStore *self, const gchar *text); + GList * (*search_new) (TplLogStore *self, const gchar *text, gint type_mask); GList * (*get_filtered_events) (TplLogStore *self, TpAccount *account, - TplEntity *target, guint num_events, + TplEntity *target, gint type_mask, guint num_events, TplLogEventFilter filter, gpointer user_data); void (*clear) (TplLogStore *self); void (*clear_account) (TplLogStore *self, TpAccount *account); @@ -87,19 +87,20 @@ GType _tpl_log_store_get_type (void); const gchar * _tpl_log_store_get_name (TplLogStore *self); gboolean _tpl_log_store_exists (TplLogStore *self, TpAccount *account, - TplEntity *target); + TplEntity *target, gint type_mask); gboolean _tpl_log_store_add_event (TplLogStore *self, TplEvent *event, GError **error); GList * _tpl_log_store_get_dates (TplLogStore *self, TpAccount *account, - TplEntity *target); + TplEntity *target, gint type_mask); GList * _tpl_log_store_get_events_for_date (TplLogStore *self, - TpAccount *account, TplEntity *target, const GDate *date); + TpAccount *account, TplEntity *target, gint type_mask, const GDate *date); GList * _tpl_log_store_get_recent_events (TplLogStore *self, - TpAccount *account, TplEntity *target); + TpAccount *account, TplEntity *target, gint type_mask); GList * _tpl_log_store_get_entities (TplLogStore *self, TpAccount *account); -GList * _tpl_log_store_search_new (TplLogStore *self, const gchar *text); +GList * _tpl_log_store_search_new (TplLogStore *self, const gchar *text, + gint type_mask); GList * _tpl_log_store_get_filtered_events (TplLogStore *self, - TpAccount *account, TplEntity *target, guint num_events, + TpAccount *account, TplEntity *target, gint type_mask, guint num_events, TplLogEventFilter filter, gpointer user_data); void _tpl_log_store_clear (TplLogStore *self); void _tpl_log_store_clear_account (TplLogStore *self, TpAccount *account); diff --git a/telepathy-logger/log-store-pidgin.c b/telepathy-logger/log-store-pidgin.c index 4ec5fd3..8784690 100644 --- a/telepathy-logger/log-store-pidgin.c +++ b/telepathy-logger/log-store-pidgin.c @@ -371,11 +371,15 @@ log_store_pidgin_get_dir (TplLogStore *self, static gboolean log_store_pidgin_exists (TplLogStore *self, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { gchar *dir; gboolean exists; + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return FALSE; + dir = log_store_pidgin_get_dir (self, account, target); if (dir != NULL) @@ -432,7 +436,8 @@ log_store_pidgin_get_time (const gchar *filename) static GList * log_store_pidgin_get_dates (TplLogStore *self, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { GList *dates = NULL; gchar *directory; @@ -443,6 +448,9 @@ log_store_pidgin_get_dates (TplLogStore *self, g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL); g_return_val_if_fail (TPL_IS_ENTITY (target), NULL); + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return NULL; + directory = log_store_pidgin_get_dir (self, account, target); if (directory == NULL) @@ -1021,7 +1029,8 @@ _log_store_pidgin_search_in_files (TplLogStorePidgin *self, static GList * log_store_pidgin_search_new (TplLogStore *self, - const gchar *text) + const gchar *text, + gint type_mask) { GList *files; GList *retval; @@ -1029,6 +1038,9 @@ log_store_pidgin_search_new (TplLogStore *self, g_return_val_if_fail (TPL_IS_LOG_STORE_PIDGIN (self), NULL); g_return_val_if_fail (!tp_str_empty (text), NULL); + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return NULL; + files = log_store_pidgin_get_all_files (self, NULL); DEBUG ("Found %d log files in total", g_list_length (files)); @@ -1085,6 +1097,7 @@ static GList * log_store_pidgin_get_events_for_date (TplLogStore *self, TpAccount *account, TplEntity *target, + gint type_mask, const GDate *date) { GList *events, *filenames; @@ -1093,6 +1106,9 @@ log_store_pidgin_get_events_for_date (TplLogStore *self, g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL); g_return_val_if_fail (TPL_IS_ENTITY (target), NULL); + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return NULL; + /* pidgin stores multiple files related to the same date */ filenames = log_store_pidgin_get_filenames_for_date (self, account, target, date); @@ -1133,6 +1149,7 @@ static GList * log_store_pidgin_get_filtered_events (TplLogStore *self, TpAccount *account, TplEntity *target, + gint type_mask, guint num_events, TplLogEventFilter filter, gpointer user_data) @@ -1140,7 +1157,7 @@ log_store_pidgin_get_filtered_events (TplLogStore *self, GList *dates, *l, *events = NULL; guint i = 0; - dates = log_store_pidgin_get_dates (self, account, target); + dates = log_store_pidgin_get_dates (self, account, target, type_mask); for (l = g_list_last (dates); l != NULL && i < num_events; l = l->prev) { @@ -1149,7 +1166,7 @@ log_store_pidgin_get_filtered_events (TplLogStore *self, /* FIXME: We should really restrict the event parsing to get only * the newest num_events. */ new_events = log_store_pidgin_get_events_for_date (self, account, - target, l->data); + target, type_mask, l->data); n = new_events; while (n != NULL) diff --git a/telepathy-logger/log-store-xml.c b/telepathy-logger/log-store-xml.c index f100790..c9f4093 100644 --- a/telepathy-logger/log-store-xml.c +++ b/telepathy-logger/log-store-xml.c @@ -557,7 +557,8 @@ log_store_xml_add_event (TplLogStore *store, static gboolean log_store_xml_exists (TplLogStore *store, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { TplLogStoreXml *self = (TplLogStoreXml *) store; gchar *dir; @@ -567,6 +568,9 @@ log_store_xml_exists (TplLogStore *store, g_return_val_if_fail (TP_IS_ACCOUNT (account), FALSE); g_return_val_if_fail (TPL_IS_ENTITY (target), FALSE); + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return FALSE; + dir = log_store_xml_get_dir (self, account, target); exists = g_file_test (dir, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR); g_free (dir); @@ -599,7 +603,8 @@ create_date_from_string (const gchar *str) static GList * log_store_xml_get_dates (TplLogStore *store, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { TplLogStoreXml *self = (TplLogStoreXml *) store; GList *dates = NULL; @@ -612,6 +617,9 @@ log_store_xml_get_dates (TplLogStore *store, g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL); g_return_val_if_fail (TPL_IS_ENTITY (target), NULL); + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return NULL; + directory = log_store_xml_get_dir (self, account, target); dir = g_dir_open (directory, 0, NULL); if (!dir) @@ -1059,7 +1067,8 @@ fail: static GList * log_store_xml_search_new (TplLogStore *store, - const gchar *text) + const gchar *text, + gint type_mask) { TplLogStoreXml *self = (TplLogStoreXml *) store; GList *files; @@ -1067,6 +1076,9 @@ log_store_xml_search_new (TplLogStore *store, g_return_val_if_fail (TPL_IS_LOG_STORE_XML (self), NULL); g_return_val_if_fail (!TPL_STR_EMPTY (text), NULL); + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return NULL; + files = log_store_xml_get_all_files (self, NULL); DEBUG ("Found %d log files in total", g_list_length (files)); @@ -1128,6 +1140,7 @@ static GList * log_store_xml_get_events_for_date (TplLogStore *store, TpAccount *account, TplEntity *target, + gint type_mask, const GDate *date) { TplLogStoreXml *self = (TplLogStoreXml *) store; @@ -1139,6 +1152,9 @@ log_store_xml_get_events_for_date (TplLogStore *store, g_return_val_if_fail (TPL_IS_ENTITY (target), NULL); g_return_val_if_fail (date != NULL, NULL); + if (!(type_mask & TPL_EVENT_MASK_TEXT)) + return NULL; + filename = log_store_xml_get_filename_for_date (self, account, target, date); events = log_store_xml_get_events_for_file (self, account, filename); @@ -1265,6 +1281,7 @@ static GList * log_store_xml_get_filtered_events (TplLogStore *store, TpAccount *account, TplEntity *target, + gint type_mask, guint num_events, TplLogEventFilter filter, gpointer user_data) @@ -1277,7 +1294,7 @@ log_store_xml_get_filtered_events (TplLogStore *store, g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL); g_return_val_if_fail (TPL_IS_ENTITY (target), NULL); - dates = log_store_xml_get_dates (store, account, target); + dates = log_store_xml_get_dates (store, account, target, type_mask); for (l = g_list_last (dates); l != NULL && i < num_events; l = g_list_previous (l)) @@ -1287,7 +1304,7 @@ log_store_xml_get_filtered_events (TplLogStore *store, /* FIXME: We should really restrict the event parsing to get only * the newest num_events. */ new_events = log_store_xml_get_events_for_date (store, account, - target, l->data); + target, type_mask, l->data); n = new_events; while (n != NULL) diff --git a/telepathy-logger/log-store.c b/telepathy-logger/log-store.c index 18a564b..7f36138 100644 --- a/telepathy-logger/log-store.c +++ b/telepathy-logger/log-store.c @@ -121,13 +121,15 @@ _tpl_log_store_get_name (TplLogStore *self) gboolean _tpl_log_store_exists (TplLogStore *self, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { g_return_val_if_fail (TPL_IS_LOG_STORE (self), FALSE); if (!TPL_LOG_STORE_GET_INTERFACE (self)->exists) return FALSE; - return TPL_LOG_STORE_GET_INTERFACE (self)->exists (self, account, target); + return TPL_LOG_STORE_GET_INTERFACE (self)->exists (self, account, target, + type_mask); } @@ -167,6 +169,7 @@ _tpl_log_store_add_event (TplLogStore *self, * @self: a TplLogStore * @account: a TpAccount * @target: a #TplEntity + * @type_mask: event type mask see #TplEventTypeMask * * Retrieves a list of #GDate, corresponding to each day * at least an event was sent to or received from @id. @@ -178,14 +181,15 @@ _tpl_log_store_add_event (TplLogStore *self, GList * _tpl_log_store_get_dates (TplLogStore *self, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { g_return_val_if_fail (TPL_IS_LOG_STORE (self), NULL); if (TPL_LOG_STORE_GET_INTERFACE (self)->get_dates == NULL) return NULL; return TPL_LOG_STORE_GET_INTERFACE (self)->get_dates (self, account, - target); + target, type_mask); } @@ -194,8 +198,7 @@ _tpl_log_store_get_dates (TplLogStore *self, * @self: a TplLogStore * @account: a TpAccount * @target: a #TplEntity - * @id: a non-NULL identifier - * @type: the event type of @id + * @type_mask: event type mask see #TplEventTypeMask * @date: a #GDate * * Retrieves a list of events, with timestamp matching @date. @@ -208,6 +211,7 @@ GList * _tpl_log_store_get_events_for_date (TplLogStore *self, TpAccount *account, TplEntity *target, + gint type_mask, const GDate *date) { g_return_val_if_fail (TPL_IS_LOG_STORE (self), NULL); @@ -215,21 +219,22 @@ _tpl_log_store_get_events_for_date (TplLogStore *self, return NULL; return TPL_LOG_STORE_GET_INTERFACE (self)->get_events_for_date (self, - account, target, date); + account, target, type_mask, date); } GList * _tpl_log_store_get_recent_events (TplLogStore *self, TpAccount *account, - TplEntity *target) + TplEntity *target, + gint type_mask) { g_return_val_if_fail (TPL_IS_LOG_STORE (self), NULL); if (TPL_LOG_STORE_GET_INTERFACE (self)->get_recent_events == NULL) return NULL; return TPL_LOG_STORE_GET_INTERFACE (self)->get_recent_events (self, account, - target); + target, type_mask); } @@ -261,6 +266,7 @@ _tpl_log_store_get_entities (TplLogStore *self, * _tpl_log_store_search_new: * @self: a TplLogStore * @text: a text to be searched among text messages + * @type_mask: event type mask see #TplEventTypeMask * * Searches all textual log entries matching @text. * @@ -270,13 +276,15 @@ _tpl_log_store_get_entities (TplLogStore *self, */ GList * _tpl_log_store_search_new (TplLogStore *self, - const gchar *text) + const gchar *text, + gint type_mask) { g_return_val_if_fail (TPL_IS_LOG_STORE (self), NULL); if (TPL_LOG_STORE_GET_INTERFACE (self)->search_new == NULL) return NULL; - return TPL_LOG_STORE_GET_INTERFACE (self)->search_new (self, text); + return TPL_LOG_STORE_GET_INTERFACE (self)->search_new (self, text, + type_mask); } @@ -285,6 +293,7 @@ _tpl_log_store_search_new (TplLogStore *self, * @self: a TplLogStore * @account: a TpAccount * @target: a #TplEntity + * @type_mask: event type mask see #TplEventTypeMask * @num_events: max number of events to return * @filter: filter function * @user_data: data be passed to @filter, may be NULL @@ -302,6 +311,7 @@ GList * _tpl_log_store_get_filtered_events (TplLogStore *self, TpAccount *account, TplEntity *target, + gint type_mask, guint num_events, TplLogEventFilter filter, gpointer user_data) @@ -311,7 +321,7 @@ _tpl_log_store_get_filtered_events (TplLogStore *self, return NULL; return TPL_LOG_STORE_GET_INTERFACE (self)->get_filtered_events (self, - account, target, num_events, filter, user_data); + account, target, type_mask, num_events, filter, user_data); } diff --git a/tests/dbus/test-searches.c b/tests/dbus/test-searches.c index dbf3f56..a9324b7 100644 --- a/tests/dbus/test-searches.c +++ b/tests/dbus/test-searches.c @@ -95,7 +95,8 @@ test_get_dates (TestCaseFixture *fixture, TplEntity *entity; entity = tpl_entity_new (ID, TPL_ENTITY_CONTACT, NULL, NULL); - ret = _tpl_log_manager_get_dates (fixture->manager, fixture->account, entity); + ret = _tpl_log_manager_get_dates (fixture->manager, fixture->account, entity, + TPL_EVENT_MASK_ANY); g_object_unref (entity); /* it includes 1 date from libpurple logs, 5 from TpLogger. Empathy diff --git a/tests/dbus/test-tpl-log-store-pidgin.c b/tests/dbus/test-tpl-log-store-pidgin.c index 0a6435f..7076e74 100644 --- a/tests/dbus/test-tpl-log-store-pidgin.c +++ b/tests/dbus/test-tpl-log-store-pidgin.c @@ -272,7 +272,7 @@ test_get_dates_jabber (PidginTestCaseFixture *fixture, /* Chatroom messages */ dates = log_store_pidgin_get_dates (TPL_LOG_STORE (fixture->store), - fixture->account, fixture->room); + fixture->account, fixture->room, TPL_EVENT_MASK_ANY); g_assert_cmpint (g_list_length (dates), ==, 2); @@ -291,7 +291,7 @@ test_get_dates_jabber (PidginTestCaseFixture *fixture, /* 1-1 messages */ dates = log_store_pidgin_get_dates (TPL_LOG_STORE (fixture->store), - fixture->account, fixture->contact); + fixture->account, fixture->contact, TPL_EVENT_MASK_ANY); g_assert_cmpint (g_list_length (dates), ==, 1); @@ -312,7 +312,8 @@ test_get_dates_irc (PidginTestCaseFixture *fixture, dates = log_store_pidgin_get_dates (TPL_LOG_STORE (fixture->store), fixture->account, - fixture->irc_room); + fixture->irc_room, + TPL_EVENT_MASK_ANY); g_assert_cmpint (g_list_length (dates), ==, 1); @@ -362,6 +363,7 @@ test_get_events_for_date_jabber (PidginTestCaseFixture *fixture, l = log_store_pidgin_get_events_for_date (TPL_LOG_STORE (fixture->store), fixture->account, fixture->room, + TPL_EVENT_MASK_ANY, date); g_assert_cmpint (g_list_length (l), ==, 6); @@ -378,6 +380,7 @@ test_get_events_for_date_jabber (PidginTestCaseFixture *fixture, l = log_store_pidgin_get_events_for_date (TPL_LOG_STORE (fixture->store), fixture->account, fixture->contact, + TPL_EVENT_MASK_ANY, date); g_assert_cmpint (g_list_length (l), ==, 2); @@ -427,7 +430,8 @@ test_search_new (PidginTestCaseFixture *fixture, /* empty search */ l = log_store_pidgin_search_new (TPL_LOG_STORE (fixture->store), - "I do not exist in this log store data base!"); + "I do not exist in this log store data base!", + TPL_EVENT_MASK_ANY); g_assert_cmpint (g_list_length (l), ==, 0); @@ -435,7 +439,8 @@ test_search_new (PidginTestCaseFixture *fixture, /* non empty search matching 1-1 */ l = log_store_pidgin_search_new (TPL_LOG_STORE (fixture->store), - "hey you"); + "hey you", + TPL_EVENT_MASK_ANY); g_assert_cmpint (g_list_length (l), ==, 1); @@ -445,7 +450,8 @@ test_search_new (PidginTestCaseFixture *fixture, /* non empty search, checking chatrooms are also searched */ l = log_store_pidgin_search_new (TPL_LOG_STORE (fixture->store), - "disco remote servers"); + "disco remote servers", + TPL_EVENT_MASK_ANY); g_assert_cmpint (g_list_length (l), ==, 1); diff --git a/tests/dbus/test-tpl-log-store-xml.c b/tests/dbus/test-tpl-log-store-xml.c index 7090584..8db04ba 100644 --- a/tests/dbus/test-tpl-log-store-xml.c +++ b/tests/dbus/test-tpl-log-store-xml.c @@ -90,7 +90,8 @@ test_clear (XmlTestCaseFixture *fixture, { GList *hits; hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - "1263405203"); + "1263405203", + TPL_EVENT_MASK_TEXT); g_assert (hits != NULL); g_assert_cmpint (g_list_length (hits), ==, 1); @@ -100,7 +101,8 @@ test_clear (XmlTestCaseFixture *fixture, _tpl_log_store_clear (TPL_LOG_STORE (fixture->store)); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - "1263405203"); + "1263405203", + TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 0); } @@ -117,14 +119,14 @@ test_clear_account (XmlTestCaseFixture *fixture, const gchar *cleared = "f95e605a3ae97c463b626a3538567bc90fc58730"; hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - kept); + kept, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); tpl_log_manager_search_free (hits); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - cleared); + cleared, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); @@ -141,14 +143,14 @@ test_clear_account (XmlTestCaseFixture *fixture, g_object_unref (account); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - kept); + kept, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); tpl_log_manager_search_free (hits); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - cleared); + cleared, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 0); } @@ -179,21 +181,21 @@ test_clear_entity (XmlTestCaseFixture *fixture, } hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - always_kept); + always_kept, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); tpl_log_manager_search_free (hits); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - kept); + kept, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); tpl_log_manager_search_free (hits); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - cleared); + cleared, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); @@ -217,21 +219,21 @@ test_clear_entity (XmlTestCaseFixture *fixture, g_object_unref (entity); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - always_kept); + always_kept, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); tpl_log_manager_search_free (hits); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - kept); + kept, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 1); tpl_log_manager_search_free (hits); hits = _tpl_log_store_search_new (TPL_LOG_STORE (fixture->store), - cleared); + cleared, TPL_EVENT_MASK_TEXT); g_assert_cmpint (g_list_length (hits), ==, 0); } |