[telepathy-glib/master] Use a Private struct to hide members behind.
Jonny Lamb
jonny.lamb at collabora.co.uk
Mon Aug 24 07:50:42 PDT 2009
Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
---
telepathy-glib/debug-sender.c | 38 +++++++++++++++++++++++---------------
telepathy-glib/debug-sender.h | 5 +++--
2 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/telepathy-glib/debug-sender.c b/telepathy-glib/debug-sender.c
index 74aa577..850a886 100644
--- a/telepathy-glib/debug-sender.c
+++ b/telepathy-glib/debug-sender.c
@@ -45,9 +45,6 @@
/**
* TpDebugSender:
* @parent: The parent class instance
- * @enabled: %TRUE if debug messages should be sent using the NewDebugMessage
- * signal.
- * @messages: A queue of debug messages.
*
* A proxy object for the Telepathy debug interface.
*
@@ -76,6 +73,12 @@ static TpDebugSender *debug_sender = NULL;
static void debug_iface_init (gpointer g_iface, gpointer iface_data);
+struct _TpDebugSenderPrivate
+{
+ gboolean enabled;
+ GQueue *messages;
+};
+
G_DEFINE_TYPE_WITH_CODE (TpDebugSender, tp_debug_sender, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES,
tp_dbus_properties_mixin_iface_init);
@@ -152,7 +155,7 @@ tp_debug_sender_get_property (GObject *object,
switch (property_id)
{
case PROP_ENABLED:
- g_value_set_boolean (value, self->enabled);
+ g_value_set_boolean (value, self->priv->enabled);
break;
default:
@@ -171,7 +174,7 @@ tp_debug_sender_set_property (GObject *object,
switch (property_id)
{
case PROP_ENABLED:
- self->enabled = g_value_get_boolean (value);
+ self->priv->enabled = g_value_get_boolean (value);
break;
default:
@@ -184,9 +187,9 @@ tp_debug_sender_finalize (GObject *object)
{
TpDebugSender *self = TP_DEBUG_SENDER (object);
- g_queue_foreach (self->messages, (GFunc) debug_message_free, NULL);
- g_queue_free (self->messages);
- self->messages = NULL;
+ g_queue_foreach (self->priv->messages, (GFunc) debug_message_free, NULL);
+ g_queue_free (self->priv->messages);
+ self->priv->messages = NULL;
G_OBJECT_CLASS (tp_debug_sender_parent_class)->finalize (object);
}
@@ -252,6 +255,8 @@ tp_debug_sender_class_init (TpDebugSenderClass *klass)
{ NULL }
};
+ g_type_class_add_private (klass, sizeof (TpDebugSenderPrivate));
+
object_class->get_property = tp_debug_sender_get_property;
object_class->set_property = tp_debug_sender_set_property;
object_class->finalize = tp_debug_sender_finalize;
@@ -292,9 +297,9 @@ get_messages (TpSvcDebug *self,
G_TYPE_STRING, G_TYPE_INVALID);
}
- messages = g_ptr_array_sized_new (g_queue_get_length (dbg->messages));
+ messages = g_ptr_array_sized_new (g_queue_get_length (dbg->priv->messages));
- for (i = dbg->messages->head; i; i = i->next)
+ for (i = dbg->priv->messages->head; i; i = i->next)
{
GValue gvalue = { 0 };
TpDebugMessage *message = (TpDebugMessage *) i->data;
@@ -331,7 +336,10 @@ debug_iface_init (gpointer g_iface,
static void
tp_debug_sender_init (TpDebugSender *self)
{
- self->messages = g_queue_new ();
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, TP_TYPE_DEBUG_SENDER,
+ TpDebugSenderPrivate);
+
+ self->priv->messages = g_queue_new ();
}
/**
@@ -380,18 +388,18 @@ tp_debug_sender_add_message (TpDebugSender *self,
{
TpDebugMessage *new_msg;
- if (g_queue_get_length (self->messages) >= DEBUG_MESSAGE_LIMIT)
+ if (g_queue_get_length (self->priv->messages) >= DEBUG_MESSAGE_LIMIT)
{
TpDebugMessage *old_head =
- (TpDebugMessage *) g_queue_pop_head (self->messages);
+ (TpDebugMessage *) g_queue_pop_head (self->priv->messages);
debug_message_free (old_head);
}
new_msg = debug_message_new (timestamp, domain, level, string);
- g_queue_push_tail (self->messages, new_msg);
+ g_queue_push_tail (self->priv->messages, new_msg);
- if (self->enabled)
+ if (self->priv->enabled)
{
tp_svc_debug_emit_new_debug_message (self, new_msg->timestamp,
domain, new_msg->level, string);
diff --git a/telepathy-glib/debug-sender.h b/telepathy-glib/debug-sender.h
index 53824e4..e825075 100644
--- a/telepathy-glib/debug-sender.h
+++ b/telepathy-glib/debug-sender.h
@@ -31,6 +31,7 @@ G_BEGIN_DECLS
typedef struct _TpDebugSender TpDebugSender;
typedef struct _TpDebugSenderClass TpDebugSenderClass;
typedef struct _TpDebugMessage TpDebugMessage;
+typedef struct _TpDebugSenderPrivate TpDebugSenderPrivate;
#define TP_TYPE_DEBUG_SENDER tp_debug_sender_get_type()
#define TP_DEBUG_SENDER(obj) \
@@ -56,8 +57,7 @@ struct _TpDebugSender {
GObject parent;
/*<private>*/
- gboolean enabled;
- GQueue *messages;
+ TpDebugSenderPrivate *priv;
};
struct _TpDebugSenderClass {
@@ -65,6 +65,7 @@ struct _TpDebugSenderClass {
GObjectClass parent_class;
TpDBusPropertiesMixinClass dbus_props_class;
GCallback _padding[7];
+ gpointer priv;
};
GType tp_debug_sender_get_type (void);
--
1.5.6.5
More information about the telepathy-commits
mailing list