## McAccount McAccount — proxy object for the Telepathy Account D-Bus API |

## Synopsis

    #include <libmcclient/mc-account.h>

                        McAccount;
                        McAccountClass;
    McAccount *         mc_account_new                      (TpDBusDaemon *dbus,
                                                             const gchar *object_path);
    void                (*McAccountWhenReadyCb)             (McAccount *account,
                                                             const GError *error,
                                                             gpointer user_data);
    void                mc_account_call_when_ready          (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);
    void                (*McAccountWhenReadyObjectCb)       (McAccount *account,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    void                mc_account_call_when_iface_ready    (McAccount *account,
                                                             GQuark interface,
                                                             McAccountWhenReadyObjectCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                mc_account_call_when_all_ready      (McAccount *account,
                                                             McAccountWhenReadyObjectCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             ...);
    const gchar *       mc_account_get_display_name         (McAccount *account);
    const gchar *       mc_account_get_icon                 (McAccount *account);
    gboolean            mc_account_is_valid                 (McAccount *account);
    gboolean            mc_account_is_enabled               (McAccount *account);
    gboolean            mc_account_has_been_online          (McAccount *account);
    gboolean            mc_account_connects_automatically   (McAccount *account);
    const gchar *       mc_account_get_nickname             (McAccount *account);
    GHashTable *        mc_account_get_parameters           (McAccount *account);
    void                mc_account_get_automatic_presence   (McAccount *account,
                                                             TpConnectionPresenceType *type,
                                                             const gchar **status,
                                                             const gchar **message);
    const gchar *       mc_account_get_connection_path      (McAccount *account);
    const gchar *       mc_account_get_connection_name      (McAccount *account);
    TpConnectionStatus  mc_account_get_connection_status    (McAccount *account);
    TpConnectionStatusReason  mc_account_get_connection_status_reason
                                                            (McAccount *account);
    void                mc_account_get_current_presence     (McAccount *account,
                                                             TpConnectionPresenceType *type,
                                                             const gchar **status,
                                                             const gchar **message);
    void                mc_account_get_requested_presence   (McAccount *account,
                                                             TpConnectionPresenceType *type,
                                                             const gchar **status,
                                                             const gchar **message);
    const gchar *       mc_account_get_normalized_name      (McAccount *account);
    TpProxyPendingCall * mc_account_set_display_name        (McAccount *account,
                                                             const gchar *display_name,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_account_set_icon                (McAccount *account,
                                                             const gchar *icon,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_account_set_enabled             (McAccount *account,
                                                             gboolean enabled,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_account_set_connect_automatically
                                                            (McAccount *account,
                                                             gboolean connect,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_account_set_nickname            (McAccount *account,
                                                             const gchar *nickname,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_account_set_automatic_presence  (McAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_account_set_requested_presence  (McAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                mc_account_avatar_call_when_ready   (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);
    void                mc_account_avatar_get               (McAccount *account,
                                                             const gchar **avatar,
                                                             gsize *length,
                                                             const gchar **mime_type);
    TpProxyPendingCall * mc_account_avatar_set              (McAccount *account,
                                                             const gchar *avatar,
                                                             gsize len,
                                                             const gchar *mime_type,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                mc_account_compat_call_when_ready   (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);
    const gchar *       mc_account_compat_get_profile       (McAccount *account);
    const gchar *       mc_account_compat_get_avatar_file   (McAccount *account);
    TpProxyPendingCall * mc_account_compat_set_profile      (McAccount *account,
                                                             const gchar *profile,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_account_compat_set_secondary_vcard_fields
                                                            (McAccount *account,
                                                             const gchar * const *fields,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                mc_account_conditions_call_when_ready
                                                            (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);
    GHashTable *        mc_account_conditions_get           (McAccount *account);
    TpProxyPendingCall * mc_account_conditions_set          (McAccount *account,
                                                             const GHashTable *conditions,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
                        McAccountChannelrequestData;
    enum                McAccountChannelrequestEvent;
    void                (*McAccountChannelrequestCb)        (McAccount *account,
                                                             guint request_id,
                                                             McAccountChannelrequestEvent event,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    enum                McAccountChannelrequestFlags;
    guint               mc_account_channelrequest           (McAccount *account,
                                                             const McAccountChannelrequestData *req_data,
                                                             time_t user_action_time,
                                                             const gchar *handler,
                                                             McAccountChannelrequestFlags flags,
                                                             McAccountChannelrequestCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    guint               mc_account_channelrequest_ht        (McAccount *account,
                                                             GHashTable *properties,
                                                             time_t user_action_time,
                                                             const gchar *handler,
                                                             McAccountChannelrequestFlags flags,
                                                             McAccountChannelrequestCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    guint               mc_account_channelrequest_add       (McAccount *account,
                                                             const gchar *object_path,
                                                             GHashTable *properties,
                                                             McAccountChannelrequestCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                mc_account_channelrequest_cancel    (McAccount *account,
                                                             guint request_id);
    const GError *      mc_account_channelrequest_get_error (McAccount *account,
                                                             guint request_id);
    const gchar *       mc_account_channelrequest_get_path  (McAccount *account,
                                                             guint request_id);
    guint               mc_account_channelrequest_get_from_path
                                                            (McAccount *account,
                                                             const gchar *object_path);

    void                (*mc_cli_account_signal_callback_removed)
                                                            (TpProxy *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * mc_cli_account_connect_to_removed
                                                            (gpointer proxy,
                                                             mc_cli_account_signal_callback_removed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);
    void                (*mc_cli_account_signal_callback_account_property_changed)
                                                            (TpProxy *proxy,
                                                             GHashTable *arg_Properties,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * mc_cli_account_connect_to_account_property_changed
                                                            (gpointer proxy,
                                                             mc_cli_account_signal_callback_account_property_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);
    void                (*mc_cli_account_callback_for_remove)
                                                            (TpProxy *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_cli_account_call_remove         (gpointer proxy,
                                                             gint timeout_ms,
                                                             mc_cli_account_callback_for_remove callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*mc_cli_account_callback_for_update_parameters)
                                                            (TpProxy *proxy,
                                                             const gchar **out_Reconnect_Required,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * mc_cli_account_call_update_parameters
                                                            (gpointer proxy,
                                                             gint timeout_ms,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             mc_cli_account_callback_for_update_parameters callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*mc_cli_account_interface_avatar_signal_callback_avatar_changed)
                                                            (TpProxy *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * mc_cli_account_interface_avatar_connect_to_avatar_changed
                                                            (gpointer proxy,
                                                             mc_cli_account_interface_avatar_signal_callback_avatar_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----TpProxy
             +----McAccount

## Signals

      "avatar-changed"                                 : Run Last / Has Details
      "channel-count-changed"                          : Run Last
      "connection-status-changed"                      : Run Last
      "flag-changed"                                   : Run Last / Has Details
      "parameters-changed"                             : Run Last / Has Details
      "presence-changed"                               : Run Last / Has Details
      "string-changed"                                 : Run Last / Has Details

## Description

This module provides a client-side proxy object for the Telepathy Account D-Bus API.

## Details

### McAccount

    typedef struct {
        TpProxy parent;
        gchar *name;
        gchar *manager_name;
        gchar *protocol_name;
    } McAccount;

A proxy object for the Telepathy Account D-Bus API. This is a subclass of TpProxy.

TpProxy `parent`; | the TpProxy for the account object.
gchar *`name`; | the name of the account; currently it's the variable part of the D-Bus object path. (read-only)
gchar *`manager_name`; | the name of the Telepathy manager. (read-only)
gchar *`protocol_name`; | the name of the protocol. (read-only)

### McAccountClass

    typedef struct _McAccountClass McAccountClass;

The class of a McAccount.

### mc_account_new ()

    McAccount *         mc_account_new                      (TpDBusDaemon *dbus,
                                                             const gchar *object_path);

`dbus` : | a D-Bus daemon; may not be `NULL`
`object_path` : | the path of the D-Bus account object.
Returns : | a new McAccount object.

### McAccountWhenReadyCb ()

    void                (*McAccountWhenReadyCb)             (McAccount *account,
                                                             const GError *error,
                                                             gpointer user_data);

`account` : | the McAccount.
`error` : | `NULL` if the interface is ready for use, or the error with which it was invalidated if it is now invalid.
`user_data` : | the user data that was passed to `mc_account_call_when_ready()`.

### mc_account_call_when_ready ()

    void                mc_account_call_when_ready          (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);

Start retrieving and monitoring the properties of the base interface of `account`. If they have already been retrieved, call `callback` immediately, then return. Otherwise, `callback` will be called when the properties are ready.

`account` : | the McAccount.
`callback` : | called when the interface becomes ready or invalidated, whichever happens first.
`user_data` : | user data to be passed to `callback`.

### McAccountWhenReadyObjectCb ()

    void                (*McAccountWhenReadyObjectCb)       (McAccount *account,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

`account` : | the McAccount.
`error` : | `NULL` if the interface is ready for use, or the error with which it was invalidated if it is now invalid.
`user_data` : | the user data that was passed to `mc_account_call_when_iface_ready()` or `mc_account_call_when_all_ready()`.
`weak_object` : | the GObject that was passed to `mc_account_call_when_iface_ready()` or `mc_account_call_when_all_ready()`.

### mc_account_call_when_iface_ready ()

    void                mc_account_call_when_iface_ready    (McAccount *account,
                                                             GQuark interface,
                                                             McAccountWhenReadyObjectCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start retrieving and monitoring the properties of the interface `interface` of `account`. If they have already been retrieved, call `callback` immediately, then return. Otherwise, `callback` will be called when the properties are ready.

`account` : | the McAccount.
`interface` : | a GQuark representing the interface to process.
`callback` : | called when the interface becomes ready or invalidated, whichever happens first.
`user_data` : | user data to be passed to `callback`.
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled.
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`

### mc_account_call_when_all_ready ()

    void                mc_account_call_when_all_ready      (McAccount *account,
                                                             McAccountWhenReadyObjectCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             ...);

Start retrieving and monitoring the properties of the specified interfaces of `account`. This is a convenience function built around `mc_account_call_when_iface_ready()`, to have `callback` called only once all the specified interfaces are ready. In case more than one interface fail to be processed, the GError passed to the callback function will be the one of the first interface that failed.

`account` : | the McAccount.
`callback` : | called when the interfaces becomes ready or invalidated, whichever happens first.
`user_data` : | user data to be passed to `callback`.
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled.
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`
`...` : | a list of GQuark types representing the interfaces to process, followed by `0`.

### mc_account_get_display_name ()

    const gchar *       mc_account_get_display_name         (McAccount *account);

`account` : | the McAccount.
Returns : | a constant string representing the account display name. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_get_icon ()

    const gchar *       mc_account_get_icon                 (McAccount *account);

`account` : | the McAccount.
Returns : | a constant string representing the account icon name. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_is_valid ()

    gboolean            mc_account_is_valid                 (McAccount *account);

`account` : | the McAccount.
Returns : | `TRUE` if the account is valid, `FALSE` otherwise. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_is_enabled ()

    gboolean            mc_account_is_enabled               (McAccount *account);

`account` : | the McAccount.
Returns : | `TRUE` if the account is enabled, `FALSE` otherwise. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_has_been_online ()

    gboolean            mc_account_has_been_online          (McAccount *account);

`account` : | the McAccount.
Returns : | `TRUE` if the account has ever been online, `FALSE` otherwise. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_connects_automatically ()

    gboolean            mc_account_connects_automatically   (McAccount *account);

`account` : | the McAccount.
Returns : | `TRUE` if the account automatically connects when possible, `FALSE` otherwise. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_get_nickname ()

    const gchar *       mc_account_get_nickname             (McAccount *account);

`account` : | the McAccount.
Returns : | the nickname (alias) of `account`. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_get_parameters ()

    GHashTable *        mc_account_get_parameters           (McAccount *account);

`account` : | the McAccount.
Returns : | a constant GHashTable (do not destroy or modify it) listing the account parameters. The keys in the hash table are strings representing the parameter names, and the values are stored in GValue types. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_get_automatic_presence ()

    void                mc_account_get_automatic_presence   (McAccount *account,
                                                             TpConnectionPresenceType *type,
                                                             const gchar **status,
                                                             const gchar **message);

Retrieves the automatic presence (the presence this account will request when going automatically online). `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

`account` : | the McAccount.
`type` : | pointer to a TpConnectionPresenceType to receive the presence type.
`status` : | pointer that will receive the presence status string (to be not modified or free'd).
`message` : | pointer that will receive the presence status message string (to be not modified or free'd).

### mc_account_get_connection_path ()

    const gchar *       mc_account_get_connection_path      (McAccount *account);

`account` : | the McAccount.
Returns : | a constant string representing the D-Bus path of the Telepathy connection object, or `NULL` if the account is disconnected. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_get_connection_name ()

    const gchar *       mc_account_get_connection_name      (McAccount *account);

`deprecated`: use `mc_account_get_connection_path()` instead.

`account` : | the McAccount.
Returns : |

### mc_account_get_connection_status ()

    TpConnectionStatus  mc_account_get_connection_status    (McAccount *account);

`account` : | the McAccount.
Returns : | the connection status of the Telepathy connection object. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_get_connection_status_reason ()

    TpConnectionStatusReason  mc_account_get_connection_status_reason
                                                            (McAccount *account);

`account` : | the McAccount.
Returns : | the connection status reason of the Telepathy connection object. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_get_current_presence ()

    void                mc_account_get_current_presence     (McAccount *account,
                                                             TpConnectionPresenceType *type,
                                                             const gchar **status,
                                                             const gchar **message);

Retrieves the current presence of `account`. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

`account` : | the McAccount.
`type` : | pointer to a TpConnectionPresenceType to receive the presence type.
`status` : | pointer that will receive the presence status string (to be not modified or free'd).
`message` : | pointer that will receive the presence status message string (to be not modified or free'd).

### mc_account_get_requested_presence ()

    void                mc_account_get_requested_presence   (McAccount *account,
                                                             TpConnectionPresenceType *type,
                                                             const gchar **status,
                                                             const gchar **message);

Retrieves the requested presence of `account`. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

`account` : | the McAccount.
`type` : | pointer to a TpConnectionPresenceType to receive the presence type.
`status` : | pointer that will receive the presence status string (to be not modified or free'd).
`message` : | pointer that will receive the presence status message string (to be not modified or free'd).

### mc_account_get_normalized_name ()

    const gchar *       mc_account_get_normalized_name      (McAccount *account);

`account` : | the McAccount.
Returns : | a constant string representing the normalized name of `account`. This is the value returned from Telepathy when inspecting the self handle, and will be `NULL` if the account never went online. connection object, or `NULL` if the account is disconnected. `mc_account_call_when_ready()` must have been successfully invoked prior to calling this function.

### mc_account_set_display_name ()

    TpProxyPendingCall * mc_account_set_display_name        (McAccount *account,
                                                             const gchar *display_name,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Set the display name of `account`.

`account` : | the McAccount.
`display_name` : | display name to be set.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_set_icon ()

    TpProxyPendingCall * mc_account_set_icon                (McAccount *account,
                                                             const gchar *icon,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Set the icon of `account`.

`account` : | the McAccount.
`icon` : | icon name to be set.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_set_enabled ()

    TpProxyPendingCall * mc_account_set_enabled             (McAccount *account,
                                                             gboolean enabled,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Enables or disables `account`.

`account` : | the McAccount.
`enabled` : | whether the `account` must be enabled.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_set_connect_automatically ()

    TpProxyPendingCall * mc_account_set_connect_automatically
                                                            (McAccount *account,
                                                             gboolean connect,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Enables or disables automatic connection for `account`.

`account` : | the McAccount.
`connect` : | whether the `account` must connect automatically.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_set_nickname ()

    TpProxyPendingCall * mc_account_set_nickname            (McAccount *account,
                                                             const gchar *nickname,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Set the nickname (alias) of `account`.

`account` : | the McAccount.
`nickname` : | nickname to be set.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_set_automatic_presence ()

    TpProxyPendingCall * mc_account_set_automatic_presence  (McAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Set the automatic presence of `account`.

`account` : | the McAccount.
`type` : | the presence type.
`status` : | the presence status string.
`message` : | the presence status message.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_set_requested_presence ()

    TpProxyPendingCall * mc_account_set_requested_presence  (McAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Set the requested presence of `account`.

`account` : | the McAccount.
`type` : | the presence type.
`status` : | the presence status string.
`message` : | the presence status message.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_avatar_call_when_ready ()

    void                mc_account_avatar_call_when_ready   (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);

Start retrieving and monitoring the properties of the Avatar interface of `account`. If they have already been retrieved, call `callback` immediately, then return. Otherwise, `callback` will be called when the properties are ready.

`account` : | the McAccount.
`callback` : | called when the interface becomes ready or invalidated, whichever happens first.
`user_data` : | user data to be passed to `callback`.

### mc_account_avatar_get ()

    void                mc_account_avatar_get               (McAccount *account,
                                                             const gchar **avatar,
                                                             gsize *length,
                                                             const gchar **mime_type);

Retrieves the avatar file contents and MIME type.

`mc_account_avatar_call_when_ready()` must have been successfully invoked prior to calling this function.

`account` : | the McAccount.
`avatar` : |
`length` : |
`mime_type` : |

### mc_account_avatar_set ()

    TpProxyPendingCall * mc_account_avatar_set              (McAccount *account,
                                                             const gchar *avatar,
                                                             gsize len,
                                                             const gchar *mime_type,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Set the secondary VCard fields for `account`.

`account` : | the McAccount.
`avatar` : |
`len` : |
`mime_type` : |
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### mc_account_compat_call_when_ready ()

    void                mc_account_compat_call_when_ready   (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);

Start retrieving and monitoring the properties of the Compat interface of `account`. If they have already been retrieved, call `callback` immediately, then return. Otherwise, `callback` will be called when the properties are ready.

`account` : | the McAccount.
`callback` : | called when the interface becomes ready or invalidated, whichever happens first.
`user_data` : | user data to be passed to `callback`.

### mc_account_compat_get_profile ()

    const gchar *       mc_account_compat_get_profile       (McAccount *account);

Retrieves the profile name of `account`.

`account` : | the McAccount.
Returns : | a constant string representing the name of the profile.

### mc_account_compat_get_avatar_file ()

    const gchar *       mc_account_compat_get_avatar_file   (McAccount *account);

`account` : | the McAccount.
Returns : | a constant string representing the filename of the avatar.

### mc_account_compat_set_profile ()

    TpProxyPendingCall * mc_account_compat_set_profile      (McAccount *account,
                                                             const gchar *profile,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

`account` : |
`profile` : |
`callback` : |
`user_data` : |
`destroy` : |
`weak_object` : |
Returns : |

### mc_account_compat_set_secondary_vcard_fields ()

    TpProxyPendingCall * mc_account_compat_set_secondary_vcard_fields
                                                            (McAccount *account,
                                                             const gchar * const *fields,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

`account` : |
`fields` : |
`callback` : |
`user_data` : |
`destroy` : |
`weak_object` : |
Returns : |

### mc_account_conditions_call_when_ready ()

    void                mc_account_conditions_call_when_ready
                                                            (McAccount *account,
                                                             McAccountWhenReadyCb callback,
                                                             gpointer user_data);

Start retrieving and monitoring the properties of the Conditions interface of `account`. If they have already been retrieved, call `callback` immediately, then return. Otherwise, `callback` will be called when the properties are ready.

`account` : | the McAccount.
`callback` : | called when the interface becomes ready or invalidated, whichever happens first.
`user_data` : | user data to be passed to `callback`.

### mc_account_conditions_get ()

    GHashTable *        mc_account_conditions_get           (McAccount *account);

Retrieves the account conditions.

`account` : | the McAccount.
Returns : | a GHashTable containing the account conditions, where both keys and values are NULL-terminated strings. It must not be modified or destroyed.

### mc_account_conditions_set ()

    TpProxyPendingCall * mc_account_conditions_set          (McAccount *account,
                                                             const GHashTable *conditions,
                                                             tp_cli_dbus_properties_callback_for_set callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Set the conditions for `account`; the `conditions` must be in a GHashTable where both keys and valus are NULL-terminated strings. It will not be modified by this method.

`account` : | the McAccount.
`conditions` : | a GHashTable with the conditions to set.
`callback` : | callback to be invoked when the operation completes, or `NULL`.
`user_data` : | user data for `callback`.
`destroy` : | GDestroyNotify function for `user_data`.
`weak_object` : | if not NULL, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be NULL if callback is NULL.
Returns : | a TpProxyPendingCall for the underlying D-Bus call.

### McAccountChannelrequestData

    typedef struct {
        guint32 _mask;
        GQuark fld_channel_type;
        guint fld_target_handle;
        TpHandleType fld_target_handle_type;
        const gchar *fld_target_id;
    } McAccountChannelrequestData;

### enum McAccountChannelrequestEvent

    typedef enum
    {
        MC_ACCOUNT_CR_SUCCEEDED,
        MC_ACCOUNT_CR_FAILED,
        MC_ACCOUNT_CR_CANCELLED,
    } McAccountChannelrequestEvent;

### McAccountChannelrequestCb ()

    void                (*McAccountChannelrequestCb)        (McAccount *account,
                                                             guint request_id,
                                                             McAccountChannelrequestEvent event,
                                                             gpointer user_data,
                                                             GObject *weak_object);

This callback will be called when some event occurs on the channel request. If the event is one of `MC_ACCOUNT_CR_SUCCEEDED`, `MC_ACCOUNT_CR_FAILED` or `MC_ACCOUNT_CR_CANCELLED`, the channel request should be considered completed, and `request_id` will be no longer valid. This callback could be called multiple times, in case some other events than `MC_ACCOUNT_CR_SUCCEEDED`, `MC_ACCOUNT_CR_FAILED` and `MC_ACCOUNT_CR_CANCELLED` occur.

`account` : | the McAccount.
`request_id` : | unique identifier of the channel request.
`event` : | one McAccountChannelrequestEvent.
`user_data` : | the user data that was passed when registering the callback.
`weak_object` : | the GObject that was passed when registering the callback.

### enum McAccountChannelrequestFlags

    typedef enum
    {
        MC_ACCOUNT_CR_FLAG_USE_EXISTING = 1 << 0, /* if set, call EnsureChannel */
    } McAccountChannelrequestFlags;

`MC_ACCOUNT_CR_FLAG_USE_EXISTING` | allow requesting of an existing channel (EnsureChannel will be called).

### mc_account_channelrequest ()

    guint               mc_account_channelrequest           (McAccount *account,
                                                             const McAccountChannelrequestData *req_data,
                                                             time_t user_action_time,
                                                             const gchar *handler,
                                                             McAccountChannelrequestFlags flags,
                                                             McAccountChannelrequestCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

This is a convenience function that internally calls `mc_account_channelrequest_ht()`. The only difference between the two functions is that this one takes the requested properties in the form of a McAccountChannelrequestData structure.

`account` : | the McAccount.
`req_data` : | a McAccountChannelrequestData struct with the requested fields set.
`user_action_time` : | the time at which user action occurred, or `0`.
`handler` : | well-known name of the preferred handler, or `NULL`.
`flags` : | a combination of McAccountChannelrequestFlags.
`callback` : | called when something happens to the request.
`user_data` : | user data to be passed to `callback`.
`destroy` : | called with the user_data as argument, after the request has succeeded, failed or been cancelled.
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled.
Returns : | the unique ID of the channel request.

### mc_account_channelrequest_ht ()

    guint               mc_account_channelrequest_ht        (McAccount *account,
                                                             GHashTable *properties,
                                                             time_t user_action_time,
                                                             const gchar *handler,
                                                             McAccountChannelrequestFlags flags,
                                                             McAccountChannelrequestCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Requests a channel matching all the requested `properties`. The channel request is uniquely identified (inside the process that called this method) by an unsigned integer ID, which is the return value of the method and also the second parameter passed to `callback`.

Unless the `weak_object` is destroyed, `callback` will be called to notify the requestor of the progress of its request. The only events supported so far are `MC_ACCOUNT_CR_SUCCEEDED`, `MC_ACCOUNT_CR_FAILED` and `MC_ACCOUNT_CR_CANCELLED`, which also happen to signal the end of the request: after one of these events occur, the request ID is no longer valid, and `destroy` (if it was not `NULL`) is called on `user_data`.

If the `weak_object` is destroyed before the channel request is completed, `callback` will not be called anymore, but `destroy` (if it was not `NULL`) is called on `user_data`; the channel request is left at whatever state it was: if you want it to be cancelled, you need to call `mc_account_channelrequest_cancel()` explicitly.

`account` : | the McAccount.
`properties` : | a GHashTable with the requested channel properties.
`user_action_time` : | the time at which user action occurred, or `0`.
`handler` : | well-known name of the preferred handler, or `NULL`.
`flags` : | a combination of McAccountChannelrequestFlags.
`callback` : | called when something happens to the request.
`user_data` : | user data to be passed to `callback`.
`destroy` : | called with the user_data as argument, after the request has succeeded, failed or been cancelled.
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled.
Returns : | the unique ID of the channel request.

### mc_account_channelrequest_add ()

    guint               mc_account_channelrequest_add       (McAccount *account,
                                                             const gchar *object_path,
                                                             GHashTable *properties,
                                                             McAccountChannelrequestCb callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

This function adds an existing request, created from another process and described by `object_path` and `properties`, to those to be monitored.

`account` : | the McAccount.
`object_path` : | the D-Bus object path of a channel request.
`properties` : | a D-Bus a{sv} of properties.
`callback` : | called when something happens to the request.
`user_data` : | user data to be passed to `callback`.
`destroy` : | called with the user_data as argument, after the request has succeeded, failed or been cancelled.
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled.
Returns : | the unique ID of the channel request, or `0` if the request was already being monitored by another callback.

### mc_account_channelrequest_cancel ()

    void                mc_account_channelrequest_cancel    (McAccount *account,
                                                             guint request_id);

Cancel the channel request identified by `request_id`.

`account` : | the McAccount.
`request_id` : | the ID of the request to be cancelled.

### mc_account_channelrequest_get_error ()

    const GError *      mc_account_channelrequest_get_error (McAccount *account,
                                                             guint request_id);

Get the last error which occurred on the channel request identified by `request_id`.

`account` : | the McAccount.
`request_id` : | the ID of the channel request.
Returns : | a GError (not to be freed), or `NULL`.

### mc_account_channelrequest_get_path ()

    const gchar *       mc_account_channelrequest_get_path  (McAccount *account,
                                                             guint request_id);

Get the object path of the channel request identified by `request_id`. The channel request D-Bus object is currently not implemented, but this object path can be used consistently with the org.freedesktop.Telepathy.Client.Handler interface.

`account` : | the McAccount.
`request_id` : | the ID of the channel request.
Returns : | the object path of the channel request.

### mc_account_channelrequest_get_from_path ()

    guint               mc_account_channelrequest_get_from_path
                                                            (McAccount *account,
                                                             const gchar *object_path);

Finds the request ID whose D-Bus object path matches `object_path`. This only works if the request was created by this process.

`account` : | the McAccount.
`object_path` : | the D-Bus object path of a channel request.
Returns : | the unique ID of the channel request, or `0`.

### mc_cli_account_signal_callback_removed ()

    void                (*mc_cli_account_signal_callback_removed)
                                                            (TpProxy *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal Removed.

`proxy` : | The proxy on which `mc_cli_account_connect_to_removed()` was called
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

### mc_cli_account_connect_to_removed ()

    TpProxySignalConnection * mc_cli_account_connect_to_removed
                                                            (gpointer proxy,
                                                             mc_cli_account_signal_callback_removed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal Removed.

This account has been removed. <tp:rationale> This is redundant with <tp:dbus-ref namespace="org.freedesktop.Telepathy.AccountManager">AccountRemoved</tp:dbus-ref>, but it's still worth having, to avoid having to bind to AccountManager.AccountRemoved to tell you whether your Account is valid — ideally, an account-editing UI should only care about a single Account. </tp:rationale>

`proxy` : | A TpProxy or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

### mc_cli_account_signal_callback_account_property_changed ()

    void                (*mc_cli_account_signal_callback_account_property_changed)
                                                            (TpProxy *proxy,
                                                             GHashTable *arg_Properties,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal AccountPropertyChanged.

`proxy` : | The proxy on which `mc_cli_account_connect_to_account_property_changed()` was called
`arg_Properties` : | A map from property names in this namespace (e.g. <tp:member-ref>Nickname</tp:member-ref>) to values. Properties whose values have not changed SHOULD be omitted, but this need not be done.
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

### mc_cli_account_connect_to_account_property_changed ()

    TpProxySignalConnection * mc_cli_account_connect_to_account_property_changed
                                                            (gpointer proxy,
                                                             mc_cli_account_signal_callback_account_property_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal AccountPropertyChanged.

The values of one or more properties on this interface (that do not specify that this signal does not apply to them) may have changed. This does not cover properties of other interfaces, which must provide their own change notification if appropriate.

`proxy` : | A TpProxy or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

### mc_cli_account_callback_for_remove ()

    void                (*mc_cli_account_callback_for_remove)
                                                            (TpProxy *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a Remove method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### mc_cli_account_call_remove ()

    TpProxyPendingCall * mc_cli_account_call_remove         (gpointer proxy,
                                                             gint timeout_ms,
                                                             mc_cli_account_callback_for_remove callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a Remove method call.

Delete the account.

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`callback` : | called when the method call succeeds or fails; may be `NULL` to make a "fire and forget" call with no reply tracking
`user_data` : | user-supplied data passed to the callback; must be `NULL` if `callback` is `NULL`
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled; must be `NULL` if `callback` is `NULL`
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### mc_cli_account_callback_for_update_parameters ()

    void                (*mc_cli_account_callback_for_update_parameters)
                                                            (TpProxy *proxy,
                                                             const gchar **out_Reconnect_Required,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a UpdateParameters method call succeeds or fails.

`proxy` : | the proxy on which the call was made
`out_Reconnect_Required` : | Used to return an 'out' argument if `error` is `NULL`: A list of the names of parameters with changes that will not take effect until the account is reconnected (this may be empty, e.g. if all the parameters are D-Bus properties or parameters for which the account manager has specific support). User interfaces that require &quot;instant apply&quot; semantics MAY call <tp:member-ref>Reconnect</tp:member-ref> in response to receiving a non-empty list.
`error` : | `NULL` on success, or an error on failure
`user_data` : | user-supplied data
`weak_object` : | user-supplied object

### mc_cli_account_call_update_parameters ()

    TpProxyPendingCall * mc_cli_account_call_update_parameters
                                                            (gpointer proxy,
                                                             gint timeout_ms,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             mc_cli_account_callback_for_update_parameters callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a UpdateParameters method call.

<tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>Change the value of the <tp:member-ref>Parameters</tp:member-ref> property.</p> <p>If any of the changed parameters' <tp:type>Conn_Mgr_Param_Flags</tp:type> include <code>DBus_Property</code>, the change will be applied to the corresponding D-Bus Property on the active <tp:member-ref>Connection</tp:member-ref>, if there is one. Changes to other parameters will not take effect until the next time the account is disconnected and reconnected.</p> <tp:rationale> <p>In general, reconnecting is a destructive operation that shouldn't happen as a side-effect. In particular, migration tools that twiddle the settings of all accounts shouldn't cause an automatic disconnect and reconnect.</p> </tp:rationale>

`proxy` : | the TpProxy
`timeout_ms` : | the timeout in milliseconds, or -1 to use the default
`in_Set` : | Used to pass an 'in' argument: A mapping from parameter names to their values. These parameters should be stored for future use.
`in_Unset` : | Used to pass an 'in' argument: A list of the names of parameters to be removed from the set of stored values, allowing the default values to be used. If the given parameters were not, in fact, stored, or even if they do not exist at all, the account manager MUST accept this without error.
`callback` : | called when the method call succeeds or fails; may be `NULL` to make a "fire and forget" call with no reply tracking
`user_data` : | user-supplied data passed to the callback; must be `NULL` if `callback` is `NULL`
`destroy` : | called with the user_data as argument, after the call has succeeded, failed or been cancelled; must be `NULL` if `callback` is `NULL`
`weak_object` : | If not `NULL`, a GObject which will be weakly referenced; if it is destroyed, this call will automatically be cancelled. Must be `NULL` if `callback` is `NULL`
Returns : | a TpProxyPendingCall representing the call in progress. It is borrowed from the object, and will become invalid when the callback is called, the call is cancelled or the TpProxy becomes invalid.

### mc_cli_account_interface_avatar_signal_callback_avatar_changed ()

    void                (*mc_cli_account_interface_avatar_signal_callback_avatar_changed)
                                                            (TpProxy *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal AvatarChanged.

`proxy` : | The proxy on which `mc_cli_account_interface_avatar_connect_to_avatar_changed()` was called
`user_data` : | User-supplied data
`weak_object` : | User-supplied weakly referenced object

### mc_cli_account_interface_avatar_connect_to_avatar_changed ()

    TpProxySignalConnection * mc_cli_account_interface_avatar_connect_to_avatar_changed
                                                            (gpointer proxy,
                                                             mc_cli_account_interface_avatar_signal_callback_avatar_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

Connect a handler to the signal AvatarChanged.

Emitted when the Avatar property changes. <tp:rationale>The avatar itself is deliberately not included in this signal, to reduce bus traffic in the (likely common) case where no running application cares about the user's own avatar.</tp:rationale>

`proxy` : | A TpProxy or subclass
`callback` : | Callback to be called when the signal is received
`user_data` : | User-supplied data for the callback
`destroy` : | Destructor for the user-supplied data, which will be called when this signal is disconnected, or before this function returns `NULL`
`weak_object` : | A GObject which will be weakly referenced; if it is destroyed, this callback will automatically be disconnected
`error` : | If not `NULL`, used to raise an error if `NULL` is returned
Returns : | a TpProxySignalConnection containing all of the above, which can be used to disconnect the signal; or `NULL` if the proxy does not have the desired interface or has become invalid.

## Signal Details

### The `"avatar-changed"` signal

    void                user_function                      (McAccount      *account,
                                                            GArray_guchar_ *avatar,
                                                            gchar          *mime_type,
                                                            gpointer        user_data)      : Run Last / Has Details

Emitted when the avatar changes. This signal will be emitted only once `mc_account_avatar_call_when_ready()` has been successfully invoked.

`account` : | the McAccount.
`avatar` : | a GArray of bytes, carrying the avatar data.
`mime_type` : | the MIME type of the avatar data.
`user_data` : | user data set when the signal handler was connected.

### The `"channel-count-changed"` signal

    void                user_function                      (McAccount  *account,
                                                            GHashTable *channel_count,
                                                            gpointer    user_data)          : Run Last

Emitted when the stats changes. The McAccount member data are updated in the signal closure, so use `g_signal_connect_after()` if you need them to reflect the new status.

`account` : | the McAccount.
`channel_count` : | a GHashTable with the new channel counters.
`user_data` : | user data set when the signal handler was connected.

### The `"connection-status-changed"` signal

    void                user_function                      (McAccount *mcaccount,
                                                            guint      arg1,
                                                            guint      arg2,
                                                            gpointer   user_data)      : Run Last

`mcaccount` : | the object which received the signal.
`arg1` : |
`arg2` : |
`user_data` : | user data set when the signal handler was connected.

### The `"flag-changed"` signal

    void                user_function                      (McAccount *account,
                                                            guint      detail,
                                                            gboolean   value,
                                                            gpointer   user_data)      : Run Last / Has Details

Emitted when a boolean property changes (such as valid, enabled).

This signal will be emitted only once `mc_account_call_when_ready()` has been successfully invoked.

`account` : | the McAccount.
`detail` : | a GQuark specifying which flag has changed.
`value` : | the new vaule for the boolean property.
`user_data` : | user data set when the signal handler was connected.

### The `"parameters-changed"` signal

    void                user_function                      (McAccount  *account,
                                                            GHashTable *old,
                                                            GHashTable *new,
                                                            gpointer    user_data)      : Run Last / Has Details

Emitted when the account parameters change. Don't modify the passed-in hash tables.

This signal will be emitted only once `mc_account_call_when_ready()` has been successfully invoked.

`account` : | the McAccount.
`old` : | the GHashTable of the old account parameters.
`new` : | the GHashTable of the new account parameters.
`user_data` : | user data set when the signal handler was connected.

### The `"presence-changed"` signal

    void                user_function                      (McAccount *account,
                                                            guint      detail,
                                                            guint      type,
                                                            gchar     *status,
                                                            gchar     *message,
                                                            gpointer   user_data)      : Run Last / Has Details

Emitted when the current, requested or automatic presence changes.

This signal will be emitted only once `mc_account_call_when_ready()` has been successfully invoked.

`account` : | the McAccount.
`detail` : | a GQuark specifying which presence has changed.
`type` : | the presence type.
`status` : | the presence status string.
`message` : | the presence status message.
`user_data` : | user data set when the signal handler was connected.

### The `"string-changed"` signal

    void                user_function                      (McAccount *account,
                                                            guint      status,
                                                            gchar     *reason,
                                                            gpointer   user_data)      : Run Last / Has Details

Emitted when the connection status changes.

This signal will be emitted only once `mc_account_call_when_ready()` has been successfully invoked.

`account` : | the McAccount.
`status` : | the connection status.
`reason` : | the connection status reason.
`user_data` : | user data set when the signal handler was connected.