diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-04-16 13:32:46 +0200 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-04-18 08:57:33 +0200 |
commit | 7c4391801a12292165604b630485a9633ba787eb (patch) | |
tree | 343368fa4a021eb4ee1f781cd1b639e1f6e6a3cc | |
parent | fa79ac662465b80900646ffc8998ed3f72ef49d2 (diff) |
debug-message: split the category from the domain
The spec specifies how the category can be included in the domain, UI may want
to display/filter them separately so best to split it for them.
-rw-r--r-- | docs/reference/telepathy-glib-sections.txt | 1 | ||||
-rw-r--r-- | telepathy-glib/debug-message.c | 50 | ||||
-rw-r--r-- | telepathy-glib/debug-message.h | 1 | ||||
-rw-r--r-- | tests/dbus/debug-client.c | 17 |
4 files changed, 67 insertions, 2 deletions
diff --git a/docs/reference/telepathy-glib-sections.txt b/docs/reference/telepathy-glib-sections.txt index 1cac5adec..0ac3c1222 100644 --- a/docs/reference/telepathy-glib-sections.txt +++ b/docs/reference/telepathy-glib-sections.txt @@ -7216,6 +7216,7 @@ TpDebugMessageClass tp_debug_client_get_messages_async tp_debug_client_get_messages_finish tp_debug_message_get_domain +tp_debug_message_get_category tp_debug_message_get_level tp_debug_message_get_message tp_debug_message_get_time diff --git a/telepathy-glib/debug-message.c b/telepathy-glib/debug-message.c index 8f7943a2a..ff947a7e4 100644 --- a/telepathy-glib/debug-message.c +++ b/telepathy-glib/debug-message.c @@ -58,6 +58,7 @@ G_DEFINE_TYPE (TpDebugMessage, tp_debug_message, G_TYPE_OBJECT) enum { PROP_TIME = 1, PROP_DOMAIN, + PROP_CATEGORY, PROP_LEVEL, PROP_MESSAGE, LAST_PROPERTY, @@ -66,6 +67,7 @@ enum { struct _TpDebugMessagePriv { GDateTime *time; gchar *domain; + gchar *category; GLogLevelFlags level; gchar *message; }; @@ -89,6 +91,9 @@ tp_debug_message_get_property (GObject *object, case PROP_DOMAIN: g_value_set_string (value, self->priv->domain); break; + case PROP_CATEGORY: + g_value_set_string (value, self->priv->category); + break; case PROP_LEVEL: g_value_set_uint (value, self->priv->level); break; @@ -106,6 +111,7 @@ tp_debug_message_finalize (GObject *object) ((GObjectClass *) tp_debug_message_parent_class)->finalize; g_free (self->priv->domain); + g_free (self->priv->category); g_free (self->priv->message); if (chain_up != NULL) @@ -149,6 +155,19 @@ tp_debug_message_class_init ( g_object_class_install_property (oclass, PROP_DOMAIN, spec); /** + * TpDebugMessage:category: + * + * Category of the debug message, or %NULL if none was specified. + * + * Since: UNRELEASED + */ + spec = g_param_spec_string ("category", "category", + "Category", + NULL, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (oclass, PROP_CATEGORY, spec); + + /** * TpDebugMessage:level: * * A #GLogLevelFlags representing the level of the debug message. @@ -222,8 +241,21 @@ _tp_debug_message_new (gdouble timestamp, tv.tv_sec = (glong) timestamp; tv.tv_usec = ((timestamp - (int) timestamp) * 1e6); + if (g_strrstr (domain, "/")) + { + gchar **parts = g_strsplit (domain, "/", 2); + self->priv->domain = g_strdup (parts[0]); + self->priv->category = g_strdup (parts[1]); + g_strfreev (parts); + } + else + { + self->priv->domain = g_strdup (domain); + self->priv->category = NULL; + } + self->priv->time = g_date_time_new_from_timeval_utc (&tv); - self->priv->domain = g_strdup (domain); + self->priv->level = debug_level_to_log_level_flags (level); self->priv->message = g_strdup (message); g_strchomp (self->priv->message); @@ -264,6 +296,22 @@ tp_debug_message_get_domain (TpDebugMessage *self) } /** + * tp_debug_message_get_category: + * @self: a #TpDebugMessage + * + * Return the #TpDebugMessage:category property + * + * Returns: the value of #TpDebugMessage:category property + * + * Since: UNRELEASED + */ +const char * +tp_debug_message_get_category (TpDebugMessage *self) +{ + return self->priv->category; +} + +/** * tp_debug_message_get_level: * @self: a #TpDebugMessage * diff --git a/telepathy-glib/debug-message.h b/telepathy-glib/debug-message.h index 8d6d0b6fb..b556002e4 100644 --- a/telepathy-glib/debug-message.h +++ b/telepathy-glib/debug-message.h @@ -67,6 +67,7 @@ GType tp_debug_message_get_type (void); GDateTime * tp_debug_message_get_time (TpDebugMessage *self); const gchar * tp_debug_message_get_domain (TpDebugMessage *self); +const gchar * tp_debug_message_get_category (TpDebugMessage *self); GLogLevelFlags tp_debug_message_get_level (TpDebugMessage *self); const gchar * tp_debug_message_get_message (TpDebugMessage *self); diff --git a/tests/dbus/debug-client.c b/tests/dbus/debug-client.c index 6c73bfdf8..5ae3219d2 100644 --- a/tests/dbus/debug-client.c +++ b/tests/dbus/debug-client.c @@ -212,7 +212,7 @@ test_get_messages (Test *test, time2 = g_date_time_new_now_local (); g_date_time_to_timeval (time2, &time_val); - tp_debug_sender_add_message (test->sender, &time_val, "domain2", + tp_debug_sender_add_message (test->sender, &time_val, "domain2/category", G_LOG_LEVEL_DEBUG, "message2"); tp_debug_client_get_messages_async (test->client, get_messages_cb, test); @@ -224,6 +224,7 @@ test_get_messages (Test *test, g_assert (test->messages != NULL); g_assert_cmpuint (test->messages->len, ==, 2); + /* first message */ msg = g_ptr_array_index (test->messages, 0); g_assert (TP_IS_DEBUG_MESSAGE (msg)); @@ -235,8 +236,22 @@ test_get_messages (Test *test, g_assert_cmpuint (g_date_time_to_unix (t), ==, g_date_time_to_unix (time1)); g_assert_cmpstr (tp_debug_message_get_domain (msg), ==, "domain1"); + g_assert (tp_debug_message_get_category (msg) == NULL); g_assert_cmpuint (tp_debug_message_get_level (msg), ==, G_LOG_LEVEL_MESSAGE); g_assert_cmpstr (tp_debug_message_get_message (msg), ==, "message1"); + + /* second message */ + msg = g_ptr_array_index (test->messages, 1); + g_assert (TP_IS_DEBUG_MESSAGE (msg)); + + t = tp_debug_message_get_time (msg); + g_assert (t != NULL); + g_assert_cmpuint (g_date_time_to_unix (t), ==, g_date_time_to_unix (time2)); + + g_assert_cmpstr (tp_debug_message_get_domain (msg), ==, "domain2"); + g_assert_cmpstr (tp_debug_message_get_category (msg), ==, "category"); + g_assert_cmpuint (tp_debug_message_get_level (msg), ==, G_LOG_LEVEL_DEBUG); + g_assert_cmpstr (tp_debug_message_get_message (msg), ==, "message2"); } static void |