summaryrefslogtreecommitdiff
path: root/telepathy-glib/signalled-message.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-10-25 17:01:26 +0200
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-12-09 13:56:27 +0100
commit5d30ee904c21244741e4eea4329855180cb20bd5 (patch)
treea587fe98dc66ba5b7c547a993969a789d3ecb7f5 /telepathy-glib/signalled-message.c
parente7a403ddc9097963ff530091fa7403a56ef5779e (diff)
downloadtelepathy-glib-5d30ee904c21244741e4eea4329855180cb20bd5.tar.gz
add _tp_signalled_message_new()
Diffstat (limited to 'telepathy-glib/signalled-message.c')
-rw-r--r--telepathy-glib/signalled-message.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/telepathy-glib/signalled-message.c b/telepathy-glib/signalled-message.c
index 66490e8bd..2a9811580 100644
--- a/telepathy-glib/signalled-message.c
+++ b/telepathy-glib/signalled-message.c
@@ -77,3 +77,29 @@ tp_signalled_message_init (TpSignalledMessage *self)
self->priv = G_TYPE_INSTANCE_GET_PRIVATE ((self), TP_TYPE_SIGNALLED_MESSAGE,
TpSignalledMessagePrivate);
}
+
+TpMessage *
+_tp_signalled_message_new (const GPtrArray *parts)
+{
+ TpMessage *self;
+ guint i;
+
+ g_return_val_if_fail (parts != NULL, NULL);
+ g_return_val_if_fail (parts->len > 0, NULL);
+
+ /* FIXME: remove message-sender? */
+ self = g_object_new (TP_TYPE_SIGNALLED_MESSAGE,
+ "initial-parts", parts->len,
+ "size-hint", parts->len,
+ NULL);
+
+ for (i = 0; i < parts->len; i++)
+ {
+ tp_g_hash_table_update (g_ptr_array_index (self->parts, i),
+ g_ptr_array_index (parts, i),
+ (GBoxedCopyFunc) g_strdup,
+ (GBoxedCopyFunc) tp_g_value_slice_dup);
+ }
+
+ return self;
+}