[next] telepathy-glib: debug-message: split the category from the domain
Simon McVittie
smcv at kemper.freedesktop.org
Wed Apr 25 07:26:08 PDT 2012
Module: telepathy-glib
Branch: next
Commit: 7c4391801a12292165604b630485a9633ba787eb
URL: http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=7c4391801a12292165604b630485a9633ba787eb
Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date: Mon Apr 16 13:32:46 2012 +0200
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.
---
docs/reference/telepathy-glib-sections.txt | 1 +
telepathy-glib/debug-message.c | 50 +++++++++++++++++++++++++++-
telepathy-glib/debug-message.h | 1 +
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 1cac5ad..0ac3c12 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 8f7943a..ff947a7 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 8d6d0b6..b556002 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 6c73bfd..5ae3219 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
More information about the telepathy-commits
mailing list