## Service-side Account interfaces

Service-side Account interfaces — GInterfaces for Telepathy Account objects

## Synopsis

    #include <telepathy-glib/svc-account.h>

                        TpSvcAccount;
                        TpSvcAccountClass;
    void                tp_svc_account_emit_account_property_changed
                                                            (gpointer instance,
                                                             GHashTable *arg_Properties);
    void                tp_svc_account_emit_removed         (gpointer instance);
    void                (*tp_svc_account_reconnect_impl)    (TpSvcAccount *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_account_return_from_reconnect
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_account_implement_reconnect  (TpSvcAccountClass *klass,
                                                             tp_svc_account_reconnect_impl impl);
    void                (*tp_svc_account_remove_impl)       (TpSvcAccount *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_account_return_from_remove   (DBusGMethodInvocation *context);
    void                tp_svc_account_implement_remove     (TpSvcAccountClass *klass,
                                                             tp_svc_account_remove_impl impl);
    void                (*tp_svc_account_update_parameters_impl)
                                                            (TpSvcAccount *self,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_account_return_from_update_parameters
                                                            (DBusGMethodInvocation *context,
                                                             const gchar **out_Reconnect_Required);
    void                tp_svc_account_implement_update_parameters
                                                            (TpSvcAccountClass *klass,
                                                             tp_svc_account_update_parameters_impl impl);

                        TpSvcAccountInterfaceAvatar;
                        TpSvcAccountInterfaceAvatarClass;
    void                tp_svc_account_interface_avatar_emit_avatar_changed
                                                            (gpointer instance);

## Object Hierarchy

      GInterface
       +----TpSvcAccount

      GInterface
       +----TpSvcAccountInterfaceAvatar

## Signals

      "account-property-changed"                       : Run Last / Has Details
      "removed"                                        : Run Last / Has Details
      "avatar-changed"                                 : Run Last / Has Details

## Description

These interfaces (auto-generated from the Telepathy spec) make it easier to export objects implementing the Telepathy Account and its optional interfaces, with the correct method and signal signatures, and emit signals from those objects in a type-safe way.

You don't need these interfaces unless you're implementing a Telepathy AccountManager, such as Mission Control.

## Details

### TpSvcAccount

    typedef struct _TpSvcAccount TpSvcAccount;

Dummy typedef representing any implementation of this interface.

### TpSvcAccountClass

    typedef struct _TpSvcAccountClass TpSvcAccountClass;

The class of TpSvcAccount.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_account (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_account_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (remove);
      IMPLEMENT (update_parameters);
      IMPLEMENT (reconnect);
    #undef IMPLEMENT
    }

### tp_svc_account_emit_account_property_changed ()

    void                tp_svc_account_emit_account_property_changed
                                                            (gpointer instance,
                                                             GHashTable *arg_Properties);

Type-safe wrapper around g_signal_emit to emit the AccountPropertyChanged signal on interface org.freedesktop.Telepathy.Account.

`instance` : | The object implementing this interface
`arg_Properties` : | GHashTable * (FIXME, generate documentation)

### tp_svc_account_emit_removed ()

    void                tp_svc_account_emit_removed         (gpointer instance);

Type-safe wrapper around g_signal_emit to emit the Removed signal on interface org.freedesktop.Telepathy.Account.

`instance` : | The object implementing this interface

### tp_svc_account_reconnect_impl ()

    void                (*tp_svc_account_reconnect_impl)    (TpSvcAccount *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Reconnect on interface org.freedesktop.Telepathy.Account.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_account_return_from_reconnect ()

    void                tp_svc_account_return_from_reconnect
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_account_implement_reconnect ()

    void                tp_svc_account_implement_reconnect  (TpSvcAccountClass *klass,
                                                             tp_svc_account_reconnect_impl impl);

Register an implementation for the Reconnect method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Reconnect D-Bus method

### tp_svc_account_remove_impl ()

    void                (*tp_svc_account_remove_impl)       (TpSvcAccount *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Remove on interface org.freedesktop.Telepathy.Account.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_account_return_from_remove ()

    void                tp_svc_account_return_from_remove   (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_account_implement_remove ()

    void                tp_svc_account_implement_remove     (TpSvcAccountClass *klass,
                                                             tp_svc_account_remove_impl impl);

Register an implementation for the Remove method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Remove D-Bus method

### tp_svc_account_update_parameters_impl ()

    void                (*tp_svc_account_update_parameters_impl)
                                                            (TpSvcAccount *self,
                                                             GHashTable *in_Set,
                                                             const gchar **in_Unset,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method UpdateParameters on interface org.freedesktop.Telepathy.Account.

`self` : | The object implementing this interface
`in_Set` : | GHashTable * (FIXME, generate documentation)
`in_Unset` : | const gchar ** (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_account_return_from_update_parameters ()

    void                tp_svc_account_return_from_update_parameters
                                                            (DBusGMethodInvocation *context,
                                                             const gchar **out_Reconnect_Required);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Reconnect_Required` : | const gchar ** (FIXME, generate documentation)

### tp_svc_account_implement_update_parameters ()

    void                tp_svc_account_implement_update_parameters
                                                            (TpSvcAccountClass *klass,
                                                             tp_svc_account_update_parameters_impl impl);

Register an implementation for the UpdateParameters method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the UpdateParameters D-Bus method

### TpSvcAccountInterfaceAvatar

    typedef struct _TpSvcAccountInterfaceAvatar TpSvcAccountInterfaceAvatar;

Dummy typedef representing any implementation of this interface.

### TpSvcAccountInterfaceAvatarClass

    typedef struct _TpSvcAccountInterfaceAvatarClass TpSvcAccountInterfaceAvatarClass;

The class of TpSvcAccountInterfaceAvatar. This interface has no D-Bus methods, so an implementation can typically pass `NULL` to `G_IMPLEMENT_INTERFACE()` as the interface initialization function.

### tp_svc_account_interface_avatar_emit_avatar_changed ()

    void                tp_svc_account_interface_avatar_emit_avatar_changed
                                                            (gpointer instance);

Type-safe wrapper around g_signal_emit to emit the AvatarChanged signal on interface org.freedesktop.Telepathy.Account.Interface.Avatar.

`instance` : | The object implementing this interface

## Signal Details

### The `"account-property-changed"` signal

    void                user_function                      (TpSvcAccount *arg_Properties,
                                                            gpointer      user_data)           : Run Last / Has Details

The AccountPropertyChanged D-Bus signal is emitted whenever this GObject signal is.

`arg_Properties` : | GHashTable * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"removed"` signal

    void                user_function                      (TpSvcAccount *arg0,
                                                            gpointer      user_data)      : Run Last / Has Details

The Removed D-Bus signal is emitted whenever this GObject signal is.

`user_data` : | user data set when the signal handler was connected.

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

    void                user_function                      (TpSvcAccountInterfaceAvatar *arg0,
                                                            gpointer                     user_data)      : Run Last / Has Details

The AvatarChanged D-Bus signal is emitted whenever this GObject signal is.

`user_data` : | user data set when the signal handler was connected.