## 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);
    const gchar *       tp_account_get_service              (TpAccount *self);
    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_set_service_async        (TpAccount *self,
                                                             const gchar *service,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_service_finish       (TpAccount *self,
                                                             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);
    const gchar *       tp_account_get_detailed_error       (TpAccount *self,
                                                             const GHashTable **details);
    gboolean            tp_account_get_changing_presence    (TpAccount *self);
    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);
    void                tp_account_set_avatar_async         (TpAccount *self,
                                                             const guchar *avatar,
                                                             gsize len,
                                                             const gchar *mime_type,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            tp_account_set_avatar_finish        (TpAccount *self,
                                                             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

      "changing-presence"        gboolean              : Read
      "connect-automatically"    gboolean              : Read
      "connection"               TpConnection*         : Read
      "connection-error"         gchar*                : Read
      "connection-error-details" GHashTable*           : 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
      "service"                  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. [out][transfer full]
`protocol` : | location at which to store the account's protocol. [out][transfer full]
`account_id` : | location at which to store the account's unique identifier. [out][transfer full]
`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. [transfer none]

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 "/". [transfer none]

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_get_service ()

    const gchar *       tp_account_get_service              (TpAccount *self);

`self` : | an account
Returns : | the same as the "service" property

Since 0.11.9

### 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`. [element-type utf8 GObject.Value][transfer none utf8 GObject.Value]
`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. [out][type GObject.Strv][transfer full]
`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_set_service_async ()

    void                tp_account_set_service_async        (TpAccount *self,
                                                             const gchar *service,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Requests an asynchronous set of the Service property on `self`. When the operation is finished, `callback` will be called. You can then call `tp_account_set_service_finish()` to get the result of the operation.

`self` : | a TpAccount
`service` : | a new service name, or `NULL` or the empty string to unset the service name (which will result in the "service" property becoming the same as "protocol")
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.11.9

### tp_account_set_service_finish ()

    gboolean            tp_account_set_service_finish       (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async set of the Service parameter.

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

Since 0.11.9

### 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`. [out]
Returns : | the same as the "connection-status" property

Since 0.9.0

### tp_account_get_detailed_error ()

    const gchar *       tp_account_get_detailed_error       (TpAccount *self,
                                                             const GHashTable **details);

If the account's connection is not connected, return the D-Bus error name with which it last disconnected or failed to connect (in particular, this is `TP_ERROR_STR_CANCELLED` if it was disconnected by a user request). This is the same as "connection-error".

If `details` is not `NULL`, it will be used to return additional details about the error (the same as "connection-error-details").

Otherwise, return `NULL`, without altering `details`.

The returned string and `details` may become invalid when the main loop is re-entered or the account is destroyed.

`self` : | an account
`details` : | optionally used to return a map from string to GValue, which must not be modified, destroyed or unreffed by the caller. [out][allow-none][element-type utf8 GObject.Value][transfer none utf8 GObject.Value]
Returns : | a D-Bus error name, or `NULL`. [transfer none][allow-none]

Since 0.11.7

### tp_account_get_changing_presence ()

    gboolean            tp_account_get_changing_presence    (TpAccount *self);

`self` : | an account
Returns : | the same as the "changing-presence" property

Since 0.11.6

### 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. [out][transfer full]
`status_message` : | return location for the current status message. [out][transfer full]
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. [out][transfer none]
`status_message` : | return location for the requested status message. [out][transfer full]
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`. [transfer none][element-type utf8 GObject.Value]

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. [element-type uint8]

Since 0.9.0

### tp_account_set_avatar_async ()

    void                tp_account_set_avatar_async         (TpAccount *self,
                                                             const guchar *avatar,
                                                             gsize len,
                                                             const gchar *mime_type,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

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

If `len` equals 0, the avatar is cleared.

`self` : | a TpAccount
`avatar` : | a new avatar to set; can be `NULL` only if `len` equals 0. [allow-none][array length=len]
`len` : | the length of the new avatar
`mime_type` : | the MIME type of the new avatar; can be `NULL` only if `len` equals 0. [allow-none]
`callback` : | a callback to call when the request is satisfied
`user_data` : | data to pass to `callback`

Since 0.11.1

### tp_account_set_avatar_finish ()

    gboolean            tp_account_set_avatar_finish        (TpAccount *self,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes an async avatar change request on `account`.

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

Since 0.11.1

### 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_proxy_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 : | the same thing as `tp_proxy_is_prepared()`

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

Since 0.11.3, this is equivalent to calling the new function `tp_proxy_prepare_async()` with the same arguments.

`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`: <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>If all of the parameters had the <code>DBus_Property</code> flag, the empty list, signifying that no reconnection is required for the new parameters to take effect. For example, if the only parameter updated is <tt>...Cellular.<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.Cellular">MessageValidityPeriod</tp:dbus-ref></tt>, the new value can be applied immediately to the connection.</p> <p>Otherwise, a list of the names of parameters with changes that will not take effect until the account is reconnected. 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. For example, if the caller updates both <tt>...Anonymity.<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.Anonymity">AnonymityMandatory</tp:dbus-ref></tt> and <tt>require-encryption</tt>, the former can be applied to the current connection, but the latter needs a reconnect to take effect, so this method should return <code>[&quot;require-encryption&quot;]</code>.</p>

`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 immediately 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 `"changing-presence"` property

      "changing-presence"        gboolean              : Read

`TRUE` if an attempt is currently being made to change the account's presence ("current-presence-type", "current-status" and "current-status-message") to match its requested presence ("requested-presence-type", "requested-status" and "requested-status-message").

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_proxy_prepare_async()` has finished; until then, the value is `FALSE`.

Default value: FALSE

Since 0.11.6

### 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_proxy_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_proxy_prepare_async()` has finished; until then, the value is `NULL`.

Since 0.9.0

### The `"connection-error"` property

      "connection-error"         gchar*                : Read

The D-Bus error name for the last disconnection or connection failure, (in particular, `TP_ERROR_STR_CANCELLED` if it was disconnected by user request), or `NULL` if the account is connected.

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

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

Default value: NULL

Since 0.11.7

### The `"connection-error-details"` property

      "connection-error-details" GHashTable*           : Read

A map from string to GValue containing extensible error details related to "connection-error". Functions like `tp_asv_get_string()` can be used to read from this map.

The keys for this map are defined by the Telepathy D-Bus Interface Specification. They will typically include `debug-message`, which is a debugging message in the C locale, analogous to GError.message.

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

This is not guaranteed to have been retrieved until `tp_proxy_prepare_async()` has finished; until then, the value is an empty map.

Since 0.11.7

### 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 "status-changed" signal, or by connecting to the "notify" signal and using this property as the signal detail.

This is not guaranteed to have been retrieved until `tp_proxy_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 "status-changed" signal, or by connecting to the "notify" signal and using this property as the signal detail.

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

Allowed values: <= 17

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_proxy_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_proxy_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_proxy_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_proxy_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_proxy_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_proxy_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_proxy_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_proxy_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 machine-readable protocol name, such as "jabber", "msn" or "local-xmpp". Recommended names for most protocols can be found in the Telepathy D-Bus Interface Specification.

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 `"service"` property

      "service"                  gchar*                : Read

A machine-readable name identifying a specific service to which this account connects, or a copy of "protocol" if there is no more specific service.

Well-known names for various services can be found in the Telepathy D-Bus Interface Specification.

For instance, accounts for the "jabber" protocol should have the service names "google-talk", "ovi-chat", "facebook" and "lj-talk" for accounts that connect to Google Talk, Ovi Chat, Facebook and Livejournal, respectively, and this property will be "jabber" for accounts that connect to a generic Jabber server.

To change this property, use `tp_account_set_service_async()`.

Default value: NULL

Since 0.11.9

### 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_proxy_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.

The `dbus_error_name` and `details` parameters were present, but non-functional (always `NULL`), in older versions. They have been available with their current behaviour since version 0.11.7.

`account` : | the TpAccount
`old_status` : | old "connection-status"
`new_status` : | new "connection-status"
`reason` : | the "connection-status-reason"
`dbus_error_name` : | the "connection-error". [allow-none]
`details` : | the "connection-error-details". [element-type utf8 GObject.Value]
`user_data` : | user data set when the signal handler was connected.

Since 0.9.0

## See Also

TpAccountManager