200 * Return value: a newly created #LmMessage |
200 * Return value: a newly created #LmMessage |
201 **/ |
201 **/ |
202 LmMessage * |
202 LmMessage * |
203 lm_message_new (const gchar *to, LmMessageType type) |
203 lm_message_new (const gchar *to, LmMessageType type) |
204 { |
204 { |
205 LmMessage *m = g_new0 (LmMessage, 1); |
205 LmMessage *m; |
206 |
206 gchar *id; |
|
207 |
|
208 m = g_new0 (LmMessage, 1); |
207 m->priv = g_new0 (LmMessagePriv, 1); |
209 m->priv = g_new0 (LmMessagePriv, 1); |
208 |
210 |
209 PRIV(m)->ref_count = 1; |
211 PRIV(m)->ref_count = 1; |
210 PRIV(m)->type = type; |
212 PRIV(m)->type = type; |
211 PRIV(m)->sub_type = message_sub_type_when_unset (type); |
213 PRIV(m)->sub_type = message_sub_type_when_unset (type); |
212 |
214 |
213 m->node = _lm_message_node_new (_lm_message_type_to_string (type)); |
215 m->node = _lm_message_node_new (_lm_message_type_to_string (type)); |
214 |
216 |
215 lm_message_node_set_attribute (m->node, "id", _lm_utils_generate_id()); |
217 id = _lm_utils_generate_id (); |
|
218 lm_message_node_set_attribute (m->node, "id", id); |
|
219 g_free (id); |
216 |
220 |
217 if (to) { |
221 if (to) { |
218 lm_message_node_set_attribute (m->node, "to", to); |
222 lm_message_node_set_attribute (m->node, "to", to); |
219 } |
223 } |
220 |
224 |
239 LmMessage * |
243 LmMessage * |
240 lm_message_new_with_sub_type (const gchar *to, |
244 lm_message_new_with_sub_type (const gchar *to, |
241 LmMessageType type, |
245 LmMessageType type, |
242 LmMessageSubType sub_type) |
246 LmMessageSubType sub_type) |
243 { |
247 { |
244 LmMessage *m = lm_message_new (to, type); |
248 LmMessage *m; |
245 const gchar *type_str; |
249 const gchar *type_str; |
|
250 |
|
251 m = lm_message_new (to, type); |
246 |
252 |
247 type_str = _lm_message_sub_type_to_string (sub_type); |
253 type_str = _lm_message_sub_type_to_string (sub_type); |
248 |
254 |
249 if (type_str) { |
255 if (type_str) { |
250 lm_message_node_set_attributes (m->node, |
256 lm_message_node_set_attributes (m->node, |