diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2010-10-25 17:01:26 +0200 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2010-12-09 13:56:27 +0100 |
commit | 5d30ee904c21244741e4eea4329855180cb20bd5 (patch) | |
tree | a587fe98dc66ba5b7c547a993969a789d3ecb7f5 /telepathy-glib/signalled-message.c | |
parent | e7a403ddc9097963ff530091fa7403a56ef5779e (diff) | |
download | telepathy-glib-5d30ee904c21244741e4eea4329855180cb20bd5.tar.gz |
add _tp_signalled_message_new()
Diffstat (limited to 'telepathy-glib/signalled-message.c')
-rw-r--r-- | telepathy-glib/signalled-message.c | 26 |
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; +} |