| 163 purple_account_disconnect(account); |
163 purple_account_disconnect(account); |
| 164 } |
164 } |
| 165 } |
165 } |
| 166 |
166 |
| 167 /****************************************************************************** |
167 /****************************************************************************** |
| |
168 * PurpleProtocol Implementation |
| |
169 *****************************************************************************/ |
| |
170 static PurpleConnection * |
| |
171 purple_protocol_default_create_connection(PurpleProtocol *protocol, |
| |
172 PurpleAccount *account, |
| |
173 const char *password, |
| |
174 G_GNUC_UNUSED GError **error) |
| |
175 { |
| |
176 return g_object_new( |
| |
177 PURPLE_TYPE_CONNECTION, |
| |
178 "protocol", protocol, |
| |
179 "account", account, |
| |
180 "password", password, |
| |
181 NULL); |
| |
182 } |
| |
183 |
| |
184 /****************************************************************************** |
| 168 * GObject Implementation |
185 * GObject Implementation |
| 169 *****************************************************************************/ |
186 *****************************************************************************/ |
| 170 static void |
187 static void |
| 171 purple_protocol_get_property(GObject *obj, guint param_id, GValue *value, |
188 purple_protocol_get_property(GObject *obj, guint param_id, GValue *value, |
| 172 GParamSpec *pspec) |
189 GParamSpec *pspec) |
| 284 |
301 |
| 285 obj_class->get_property = purple_protocol_get_property; |
302 obj_class->get_property = purple_protocol_get_property; |
| 286 obj_class->set_property = purple_protocol_set_property; |
303 obj_class->set_property = purple_protocol_set_property; |
| 287 obj_class->finalize = purple_protocol_finalize; |
304 obj_class->finalize = purple_protocol_finalize; |
| 288 |
305 |
| |
306 klass->create_connection = purple_protocol_default_create_connection; |
| |
307 |
| 289 /** |
308 /** |
| 290 * PurpleProtocol::id: |
309 * PurpleProtocol::id: |
| 291 * |
310 * |
| 292 * The identifier for the protocol. |
311 * The identifier for the protocol. |
| 293 * |
312 * |
| 546 if(klass != NULL && klass->close != NULL) { |
565 if(klass != NULL && klass->close != NULL) { |
| 547 klass->close(protocol, gc); |
566 klass->close(protocol, gc); |
| 548 } |
567 } |
| 549 } |
568 } |
| 550 |
569 |
| |
570 |
| |
571 PurpleConnection * |
| |
572 purple_protocol_create_connection(PurpleProtocol *protocol, |
| |
573 PurpleAccount *account, |
| |
574 const char *password, |
| |
575 GError **error) |
| |
576 { |
| |
577 PurpleProtocolClass *klass = NULL; |
| |
578 |
| |
579 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL); |
| |
580 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL); |
| |
581 |
| |
582 klass = PURPLE_PROTOCOL_GET_CLASS(protocol); |
| |
583 if(klass != NULL && klass->create_connection != NULL) { |
| |
584 return klass->create_connection(protocol, account, password, error); |
| |
585 } |
| |
586 |
| |
587 g_set_error(error, PURPLE_CONNECTION_ERROR, 0, |
| |
588 "Protocol %s did not implement create_connection", |
| |
589 purple_protocol_get_name(protocol)); |
| |
590 |
| |
591 return NULL; |
| |
592 } |
| |
593 |
| 551 GList * |
594 GList * |
| 552 purple_protocol_get_status_types(PurpleProtocol *protocol, |
595 purple_protocol_get_status_types(PurpleProtocol *protocol, |
| 553 PurpleAccount *account) |
596 PurpleAccount *account) |
| 554 { |
597 { |
| 555 PurpleProtocolClass *klass = NULL; |
598 PurpleProtocolClass *klass = NULL; |