## TpAccount TpAccount — proxy object for an account in the Telepathy account manager |

## Synopsis

    #include <telepathy-glib/account.h>

                        TpAccount;
                        TpAccountClass;
    TpAccount *         tp_account_new                      (TpDBusDaemon *bus_daemon,
                                                             const gchar *object_path,
                                                             GError **error);
    void                tp_account_init_known_interfaces    (void);
    gboolean            tp_account_parse_object_path        (const gchar *object_path,
                                                             gchar **cm,
                                                             gchar **protocol,
                                                             gchar **account_id,
                                                             GError **error);
    TpConnection *      tp_account_get_connection           (TpAccount *account);
    TpConnection *      tp_account_ensure_connection        (TpAccount *account,
                                                             const gchar *path);
    const gchar *       tp_account_get_display_name         (TpAccount *account);
    const gchar *       tp_account_get_connection_manager   (TpAccount *account);
    const gchar *       tp_account_get_protocol             (TpAccount *account);
    const gchar *       tp_account_get_icon_name            (TpAccount *account);
    void                tp_account_set_enabled_async        (TpAccount *account,
                                                             gboolean enabled,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_enabled_finish       (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_reconnect_async          (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_reconnect_finish         (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            tp_account_is_enabled               (TpAccount *account);
    gboolean            tp_account_is_valid                 (TpAccount *account);
    void                tp_account_update_parameters_async  (TpAccount *account,
                                                             GHashTable *parameters,
                                                             const gchar **unset_parameters,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_update_parameters_finish (TpAccount *account,
                                                             GAsyncResult *result,
                                                             gchar ***reconnect_required,
                                                             GError **error);
    void                tp_account_remove_async             (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_remove_finish            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_set_display_name_async   (TpAccount *account,
                                                             const gchar *display_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_display_name_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_set_icon_name_async      (TpAccount *account,
                                                             const gchar *icon_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_icon_name_finish     (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_request_presence_async   (TpAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_request_presence_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            tp_account_get_connect_automatically
                                                            (TpAccount *account);
    void                tp_account_set_connect_automatically_async
                                                            (TpAccount *account,
                                                             gboolean connect_automatically,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_connect_automatically_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            tp_account_get_has_been_online      (TpAccount *account);
    TpConnectionStatus  tp_account_get_connection_status    (TpAccount *account,
                                                             TpConnectionStatusReason *reason);
    TpConnectionPresenceType  tp_account_get_current_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);
    TpConnectionPresenceType  tp_account_get_requested_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);
    const GHashTable *  tp_account_get_parameters           (TpAccount *account);
    const gchar *       tp_account_get_nickname             (TpAccount *account);
    void                tp_account_set_nickname_async       (TpAccount *account,
                                                             const gchar *nickname,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_nickname_finish      (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);
    void                tp_account_get_avatar_async         (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    const GArray *      tp_account_get_avatar_finish        (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

    #define             TP_ACCOUNT_FEATURE_CORE
    gboolean            tp_account_is_prepared              (TpAccount *account,
                                                             GQuark feature);
    void                tp_account_prepare_async            (TpAccount *account,
                                                             const GQuark *features,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_prepare_finish           (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

    void                (*tp_cli_account_callback_for_reconnect)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * tp_cli_account_call_reconnect      (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_account_callback_for_reconnect callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*tp_cli_account_callback_for_remove)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * tp_cli_account_call_remove         (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_account_callback_for_remove callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*tp_cli_account_callback_for_update_parameters)
                                                            (TpAccount *proxy,
                                                             const gchar **out_Reconnect_Required,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxyPendingCall * tp_cli_account_call_update_parameters
                                                            (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             tp_cli_account_callback_for_update_parameters callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);
    void                (*tp_cli_account_signal_callback_account_property_changed)
                                                            (TpAccount *proxy,
                                                             GHashTable *arg_Properties,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * tp_cli_account_connect_to_account_property_changed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_signal_callback_account_property_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);
    void                (*tp_cli_account_signal_callback_removed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * tp_cli_account_connect_to_removed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_signal_callback_removed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

    void                (*tp_cli_account_interface_avatar_signal_callback_avatar_changed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);
    TpProxySignalConnection * tp_cli_account_interface_avatar_connect_to_avatar_changed
                                                            (TpAccount *proxy,
                                                             tp_cli_account_interface_avatar_signal_callback_avatar_changed callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----TpProxy
             +----TpAccount

## Properties

      "connect-automatically"    gboolean              : Read
      "connection"               TpConnection*         : Read
      "connection-manager"       gchar*                : Read
      "connection-status"        guint                 : Read
      "connection-status-reason" guint                 : Read
      "current-presence-type"    guint                 : Read
      "current-status"           gchar*                : Read
      "current-status-message"   gchar*                : Read
      "display-name"             gchar*                : Read
      "enabled"                  gboolean              : Read
      "has-been-online"          gboolean              : Read
      "icon-name"                gchar*                : Read
      "nickname"                 gchar*                : Read
      "protocol"                 gchar*                : Read
      "requested-presence-type"  guint                 : Read
      "requested-status"         gchar*                : Read
      "requested-status-message" gchar*                : Read
      "valid"                    gboolean              : Read

## Signals

      "presence-changed"                               : Run Last
      "status-changed"                                 : Run Last

## Description

The Telepathy Account Manager stores the user's configured real-time communication accounts. The TpAccount object represents a stored account.

## Details

### TpAccount

    typedef struct _TpAccount TpAccount;

The Telepathy Account Manager stores the user's configured real-time communication accounts. This object represents a stored account.

If this account is deleted from the account manager, the "invalidated" signal will be emitted with the domain `TP_DBUS_ERRORS` and the error code `TP_DBUS_ERROR_OBJECT_REMOVED`.

One can connect to the "notify" signal to get change notifications for many of the properties on this object. Refer to each property's documentation for whether it can be used in this way.

Since 0.7.32

### TpAccountClass

    typedef struct {
    } TpAccountClass;

The class of a TpAccount.

### tp_account_new ()

    TpAccount *         tp_account_new                      (TpDBusDaemon *bus_daemon,
                                                             const gchar *object_path,
                                                             GError **error);

Convenience function to create a new account proxy. The returned TpAccount is not guaranteed to be ready at the point of return.

`bus_daemon` : | Proxy for the D-Bus daemon
`object_path` : | The non-NULL object path of this account
`error` : | Used to raise an error if `object_path` is not valid
Returns : | a new reference to an account proxy, or `NULL` if `object_path` is not valid

### tp_account_init_known_interfaces ()

    void                tp_account_init_known_interfaces    (void);

Ensure that the known interfaces for TpAccount have been set up. This is done automatically when necessary, but for correct overriding of library interfaces by local extensions, you should call this function before calling `tp_proxy_or_subclass_hook_on_interface_add()` with first argument `TP_TYPE_ACCOUNT`.

Since 0.7.32

### tp_account_parse_object_path ()

    gboolean            tp_account_parse_object_path        (const gchar *object_path,
                                                             gchar **cm,
                                                             gchar **protocol,
                                                             gchar **account_id,
                                                             GError **error);

Validates and parses a Telepathy Account's object path, extracting the connection manager's name, the protocol, and the account's unique identifier from the path. This includes replacing underscores with hyphens in the protocol name, as defined in the Account specification.

Any of the out parameters may be `NULL` if not needed. If `TRUE` is returned, the caller is responsible for freeing the strings stored in any non-`NULL` out parameters, using `g_free()`.

`object_path` : | a Telepathy Account's object path
`cm` : | location at which to store the account's connection manager's name
`protocol` : | location at which to store the account's protocol
`account_id` : | location at which to store the account's unique identifier
`error` : | location at which to return an error
Returns : | `TRUE` if `object_path` was successfully parsed; `FALSE` and sets `error` otherwise.

Since 0.9.0

### tp_account_get_connection ()

    TpConnection *      tp_account_get_connection           (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "connection" property

Since 0.9.0

### tp_account_ensure_connection ()

    TpConnection *      tp_account_ensure_connection        (TpAccount *account,
                                                             const gchar *path);

Set the connection of the account by specifying the connection object path. This function does not return a new ref and it is not guaranteed that the returned TpConnection object is ready.

The use-case for this function is in a HandleChannels callback and you already know the object path for the connection, so you can let `account` create its TpConnection and return it for use.

`account` : | a TpAccount
`path` : | the path to connection object for TpAccount
Returns : | the connection of the account, or `NULL` if either the object path `path` is invalid or it is the null-value "/"

Since 0.9.0

### tp_account_get_display_name ()

    const gchar *       tp_account_get_display_name         (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "display-name" property

Since 0.9.0

### tp_account_get_connection_manager ()

    const gchar *       tp_account_get_connection_manager   (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "connection-manager" property

Since 0.9.0

### tp_account_get_protocol ()

    const gchar *       tp_account_get_protocol             (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "protocol" property

Since 0.9.0

### tp_account_get_icon_name ()

    const gchar *       tp_account_get_icon_name            (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "icon-name" property

Since 0.9.0

### tp_account_set_enabled_async ()

    void                tp_account_set_enabled_async        (TpAccount *account,
                                                             gboolean enabled,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the Enabled property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_enabled_finish()` to get the result of the operation.

`account` : | a TpAccount
`enabled` : | the new enabled value of `account`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_enabled_finish ()

    gboolean            tp_account_set_enabled_finish       (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the Enabled property.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the set was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_reconnect_async ()

    void                tp_account_reconnect_async          (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous reconnect of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_reconnect_finish()` to get the result of the operation.

`account` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_reconnect_finish ()

    gboolean            tp_account_reconnect_finish         (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async reconnect of `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to be filled
Returns : | `TRUE` if the reconnect call was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_is_enabled ()

    gboolean            tp_account_is_enabled               (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "enabled" property

Since 0.9.0

### tp_account_is_valid ()

    gboolean            tp_account_is_valid                 (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "valid" property

Since 0.9.0

### tp_account_update_parameters_async ()

    void                tp_account_update_parameters_async  (TpAccount *account,
                                                             GHashTable *parameters,
                                                             const gchar **unset_parameters,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous update of parameters of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_update_parameters_finish()` to get the result of the operation.

`account` : | a TpAccount
`parameters` : | new parameters to set on `account`
`unset_parameters` : | list of parameters to unset on `account`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_update_parameters_finish ()

    gboolean            tp_account_update_parameters_finish (TpAccount *account,
                                                             GAsyncResult *result,
                                                             gchar ***reconnect_required,
                                                             GError **error);

Finishes an async update of the parameters on `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`reconnect_required` : | a GStrv to fill with properties that need a reconnect to take effect
`error` : | a GError to fill
Returns : | `TRUE` if the request succeeded, otherwise `FALSE`

Since 0.9.0

### tp_account_remove_async ()

    void                tp_account_remove_async             (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous removal of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_remove_finish()` to get the result of the operation.

`account` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_remove_finish ()

    gboolean            tp_account_remove_finish            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async removal of `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_set_display_name_async ()

    void                tp_account_set_display_name_async   (TpAccount *account,
                                                             const gchar *display_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the DisplayName property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_display_name_finish()` to get the result of the operation.

`account` : | a TpAccount
`display_name` : | a new display name, or `NULL` to unset the display name
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_display_name_finish ()

    gboolean            tp_account_set_display_name_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the DisplayName property.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the call was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_set_icon_name_async ()

    void                tp_account_set_icon_name_async      (TpAccount *account,
                                                             const gchar *icon_name,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the Icon property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_icon_name_finish()` to get the result of the operation.

`account` : | a TpAccount
`icon_name` : | a new icon name, or `NULL` to unset the icon name
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_icon_name_finish ()

    gboolean            tp_account_set_icon_name_finish     (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the Icon parameter.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_request_presence_async ()

    void                tp_account_request_presence_async   (TpAccount *account,
                                                             TpConnectionPresenceType type,
                                                             const gchar *status,
                                                             const gchar *message,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous change of presence on `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_request_presence_finish()` to get the result of the operation.

`account` : | a TpAccount
`type` : | the requested presence
`status` : | a status message to set, or `NULL`
`message` : | a message for the change, or `NULL`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_request_presence_finish ()

    gboolean            tp_account_request_presence_finish  (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async presence change request on `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_get_connect_automatically ()

    gboolean            tp_account_get_connect_automatically
                                                            (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "connect-automatically" property

Since 0.9.0

### tp_account_set_connect_automatically_async ()

    void                tp_account_set_connect_automatically_async
                                                            (TpAccount *account,
                                                             gboolean connect_automatically,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the ConnectAutomatically property of `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_display_name_finish()` to get the result of the operation.

`account` : | a TpAccount
`connect_automatically` : | new value for the parameter
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_connect_automatically_finish ()

    gboolean            tp_account_set_connect_automatically_finish
                                                            (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the ConnectAutomatically property.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the call was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_get_has_been_online ()

    gboolean            tp_account_get_has_been_online      (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "has-been-online" property

Since 0.9.0

### tp_account_get_connection_status ()

    TpConnectionStatus  tp_account_get_connection_status    (TpAccount *account,
                                                             TpConnectionStatusReason *reason);

Gets the connection status and reason from `account`. The two values are the same as the "connection-status" and "connection-status-reason" properties.

`account` : | a TpAccount
`reason` : | a TpConnectionStatusReason to fill, or `NULL`
Returns : | the same as the "connection-status" property

Since 0.9.0

### tp_account_get_current_presence ()

    TpConnectionPresenceType  tp_account_get_current_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);

Gets the current presence, status and status message of `account`. These values are the same as the "current-presence-type", "current-status" and "current-status-message" properties.

`account` : | a TpAccount
`status` : | return location for the current status
`status_message` : | return location for the current status message
Returns : | the same as the "current-presence-type" property

Since 0.9.0

### tp_account_get_requested_presence ()

    TpConnectionPresenceType  tp_account_get_requested_presence
                                                            (TpAccount *account,
                                                             gchar **status,
                                                             gchar **status_message);

Gets the requested presence, status and status message of `account`. These values are the same as the "requested-presence-type", "requested-status" and "requested-status-message" properties.

`account` : | a TpAccount
`status` : | return location for the requested status
`status_message` : | return location for the requested status message
Returns : | the same as the "requested-presence-type" property

Since 0.9.0

### tp_account_get_parameters ()

    const GHashTable *  tp_account_get_parameters           (TpAccount *account);

Returns the parameters of the account, in a hash table where each string is the parameter name (account, password, require-encryption etc.), and each value is a GValue. Using the tp_asv_get family of functions (`tp_asv_get_uint32()`, `tp_asv_get_string()` etc.) to access the parameters is recommended.

The allowed parameters depend on the connection manager, and can be found via `tp_connection_manager_get_protocol()` and `tp_connection_manager_protocol_get_param()`. Well-known parameters are listed in the Telepathy D-Bus Interface Specification.

`account` : | a TpAccount
Returns : | the hash table of parameters on `account`

Since 0.9.0

### tp_account_get_nickname ()

    const gchar *       tp_account_get_nickname             (TpAccount *account);

`account` : | a TpAccount
Returns : | the same as the "nickname" property

Since 0.9.0

### tp_account_set_nickname_async ()

    void                tp_account_set_nickname_async       (TpAccount *account,
                                                             const gchar *nickname,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous change of the Nickname parameter on `account`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_nickname_finish()` to get the result of the operation.

`account` : | a TpAccount
`nickname` : | a new nickname to set
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_set_nickname_finish ()

    gboolean            tp_account_set_nickname_finish      (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async nickname change request on `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the operation was successful, otherwise `FALSE`

Since 0.9.0

### tp_account_get_avatar_async ()

    void                tp_account_get_avatar_async         (TpAccount *account,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous get of `account`'s avatar. When the operation is finished, `callback` will be called. You can then call `tp_account_get_avatar_finish()` to get the result of the operation.

`account` : | a TpAccount
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_get_avatar_finish ()

    const GArray *      tp_account_get_avatar_finish        (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async get operation of `account`'s avatar.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | a GArray of guchar containing the bytes of the account's avatar, or `NULL` on failure

Since 0.9.0

### TP_ACCOUNT_FEATURE_CORE

    #define             TP_ACCOUNT_FEATURE_CORE

Expands to a call to a function that returns a quark for the "core" feature on a TpAccount.

When this feature is prepared, the basic properties of the Account have been retrieved and are available for use, and change-notification has been set up.

One can ask for a feature to be prepared using the `tp_account_prepare_async()` function, and waiting for it to callback.

Since 0.9.0

### tp_account_is_prepared ()

    gboolean            tp_account_is_prepared              (TpAccount *account,
                                                             GQuark feature);

`account` : | a TpAccount
`feature` : | a feature which is required
Returns : | `TRUE` if `feature` is ready on `account`, otherwise `FALSE`

Since 0.9.0

### tp_account_prepare_async ()

    void                tp_account_prepare_async            (TpAccount *account,
                                                             const GQuark *features,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous preparation of `account` with the features specified by `features`. When the operation is finished, `callback` will be called. You can then call `tp_account_prepare_finish()` to get the result of the operation.

If `features` is `NULL`, then `callback` will be called when the implied `TP_ACCOUNT_FEATURE_CORE` feature is ready.

If `NULL` is given to `callback`, then no callback will be called when the operation is finished. Instead, it will simply set `features` on `manager`. Note that if `callback` is `NULL`, then `user_data` must also be `NULL`.

`account` : | a TpAccount
`features` : | a 0-terminated list of features, or `NULL`
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.9.0

### tp_account_prepare_finish ()

    gboolean            tp_account_prepare_finish           (TpAccount *account,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async preparation of the account `account`.

`account` : | a TpAccount
`result` : | a GAsyncResult
`error` : | a GError to fill
Returns : | `TRUE` if the preparation was successful, otherwise `FALSE`

Since 0.9.0

### tp_cli_account_callback_for_reconnect ()

    void                (*tp_cli_account_callback_for_reconnect)
                                                            (TpAccount *proxy,
                                                             const GError *error,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Signature of the callback called when a Reconnect 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

### tp_cli_account_call_reconnect ()

    TpProxyPendingCall * tp_cli_account_call_reconnect      (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_cli_account_callback_for_reconnect callback,
                                                             gpointer user_data,
                                                             GDestroyNotify destroy,
                                                             GObject *weak_object);

Start a Reconnect method call.

<tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>Re-connect this account. If the account is currently disconnected and the requested presence is offline, or if the account is not <tp:member-ref>Enabled</tp:member-ref> or not <tp:member-ref>Valid</tp:member-ref>, this does nothing.</p> <p>If the account is disconnected and the requested presence is not offline, this forces an attempt to connect with the requested presence immediately.</p> <p>If the account is connecting or connected, this is equivalent to remembering the current value of <tp:member-ref>RequestedPresence</tp:member-ref>, setting its value to (OFFLINE, &quot;offline&quot;, &quot;&quot;), waiting for the change to take effect, then setting its value to the value that was previously remembered.</p> <tp:rationale> <p>Clients desiring &quot;instant apply&quot; semantics for CM parameters MAY call this method to achieve that.</p> </tp:rationale> <p>In particular, if the account's <tp:member-ref>Connection</tp:member-ref> is in the Connecting state, calling this method causes the attempt to connect to be aborted and re-tried.</p> <tp:rationale> <p>This is necessary to ensure that the new parameters are picked up.</p> </tp:rationale>

`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.

### tp_cli_account_callback_for_remove ()

    void                (*tp_cli_account_callback_for_remove)
                                                            (TpAccount *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

### tp_cli_account_call_remove ()

    TpProxyPendingCall * tp_cli_account_call_remove         (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             tp_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.

### tp_cli_account_callback_for_update_parameters ()

    void                (*tp_cli_account_callback_for_update_parameters)
                                                            (TpAccount *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

### tp_cli_account_call_update_parameters ()

    TpProxyPendingCall * tp_cli_account_call_update_parameters
                                                            (TpAccount *proxy,
                                                             gint timeout_ms,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             tp_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.

### tp_cli_account_signal_callback_account_property_changed ()

    void                (*tp_cli_account_signal_callback_account_property_changed)
                                                            (TpAccount *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 `tp_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

### tp_cli_account_connect_to_account_property_changed ()

    TpProxySignalConnection * tp_cli_account_connect_to_account_property_changed
                                                            (TpAccount *proxy,
                                                             tp_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 TpAccount 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.

### tp_cli_account_signal_callback_removed ()

    void                (*tp_cli_account_signal_callback_removed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal Removed.

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

### tp_cli_account_connect_to_removed ()

    TpProxySignalConnection * tp_cli_account_connect_to_removed
                                                            (TpAccount *proxy,
                                                             tp_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 TpAccount 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.

### tp_cli_account_interface_avatar_signal_callback_avatar_changed ()

    void                (*tp_cli_account_interface_avatar_signal_callback_avatar_changed)
                                                            (TpAccount *proxy,
                                                             gpointer user_data,
                                                             GObject *weak_object);

Represents the signature of a callback for the signal AvatarChanged.

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

### tp_cli_account_interface_avatar_connect_to_avatar_changed ()

    TpProxySignalConnection * tp_cli_account_interface_avatar_connect_to_avatar_changed
                                                            (TpAccount *proxy,
                                                             tp_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 TpAccount 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.

## Property Details

### The `"connect-automatically"` property

      "connect-automatically"    gboolean              : Read

Whether the account should connect automatically or not. To change this property, use `tp_account_set_connect_automatically_async()`.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.9.0

### The `"connection"` property

      "connection"               TpConnection*         : Read

The connection of the account, or NULL if account is offline. It is not guaranteed that the returned TpConnection object is ready.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `NULL`.

Since 0.9.0

### The `"connection-manager"` property

      "connection-manager"       gchar*                : Read

The account's connection manager name.

Default value: NULL

Since 0.9.0

### The `"connection-status"` property

      "connection-status"        guint                 : Read

The account's connection status type (a `TpConnectionStatus`).

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `TP_CONNECTION_STATUS_DISCONNECTED`.

Allowed values: <= 3

Default value: 2

Since 0.9.0

### The `"connection-status-reason"` property

      "connection-status-reason" guint                 : Read

The account's connection status reason (a `TpConnectionStatusReason`).

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `TP_CONNECTION_STATUS_REASON_NONE_SPECIFIED`.

Allowed values: <= 14

Default value: 0

Since 0.9.0

### The `"current-presence-type"` property

      "current-presence-type"    guint                 : Read

The account connection's current presence type (a `TpConnectionPresenceType`).

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `TP_CONNECTION_PRESENCE_TYPE_UNSET`.

Allowed values: <= 9

Default value: 0

Since 0.9.0

### The `"current-status"` property

      "current-status"           gchar*                : Read

The current Status string of the account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"current-status-message"` property

      "current-status-message"   gchar*                : Read

The current status message message of the account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"display-name"` property

      "display-name"             gchar*                : Read

The account's display name, from the DisplayName property.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"enabled"` property

      "enabled"                  gboolean              : Read

Whether this account is enabled or not.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is FALSE.

Default value: FALSE

Since 0.9.0

### The `"has-been-online"` property

      "has-been-online"          gboolean              : Read

Whether this account has been online or not.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.9.0

### The `"icon-name"` property

      "icon-name"                gchar*                : Read

The account's icon name. To change this propery, use `tp_account_set_icon_name_async()`.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"nickname"` property

      "nickname"                 gchar*                : Read

The nickname that should be set for the user on this account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `NULL`.

Default value: NULL

Since 0.9.0

### The `"protocol"` property

      "protocol"                 gchar*                : Read

The account's protocol name.

Default value: NULL

Since 0.9.0

### The `"requested-presence-type"` property

      "requested-presence-type"  guint                 : Read

The account's requested presence type (a TpConnectionPresenceType).

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

Allowed values: <= 9

Default value: 0

Since 0.9.0

### The `"requested-status"` property

      "requested-status"         gchar*                : Read

The requested Status string of the account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

Default value: NULL

Since 0.9.0

### The `"requested-status-message"` property

      "requested-status-message" gchar*                : Read

The requested status message message of the account.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

Default value: NULL

Since 0.9.0

### The `"valid"` property

      "valid"                    gboolean              : Read

Whether this account is valid.

One can receive change notifications on this property by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_account_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.9.0

## Signal Details

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

    void                user_function                      (TpAccount *account,
                                                            guint      presence,
                                                            gchar     *status,
                                                            gchar     *status_message,
                                                            gpointer   user_data)           : Run Last

Emitted when the presence of the account changes.

`account` : | the TpAccount
`presence` : | the new presence
`status` : | the new presence status
`status_message` : | the new presence status message
`user_data` : | user data set when the signal handler was connected.

Since 0.9.0

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

    void                user_function                      (TpAccount  *account,
                                                            guint       old_status,
                                                            guint       new_status,
                                                            guint       reason,
                                                            gchar      *dbus_error_name,
                                                            GHashTable *details,
                                                            gpointer    user_data)            : Run Last

Emitted when the connection status on the account changes.

`account` : | the TpAccount
`old_status` : | old connection status
`new_status` : | new connection status
`reason` : | the reason for the status change
`dbus_error_name` : | currently unused, but for exposing the dbus error name on a connection error in the future
`details` : | currently unused, but for exposing the error details on a connection error in the future
`user_data` : | user data set when the signal handler was connected.

Since 0.9.0

## See Also

TpAccountManager