## Service-side Account Manager interface

Service-side Account Manager interface — GInterface for Telepathy AccountManager objects

## Synopsis

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

                        TpSvcAccountManager;
                        TpSvcAccountManagerClass;
    void                tp_svc_account_manager_emit_account_removed
                                                            (gpointer instance,
                                                             const gchar *arg_Account);
    void                tp_svc_account_manager_emit_account_validity_changed
                                                            (gpointer instance,
                                                             const gchar *arg_Account,
                                                             gboolean arg_Valid);
    void                (*tp_svc_account_manager_create_account_impl)
                                                            (TpSvcAccountManager *self,
                                                             const gchar *in_Connection_Manager,
                                                             const gchar *in_Protocol,
                                                             const gchar *in_Display_Name,
                                                             GHashTable *in_Parameters,
                                                             GHashTable *in_Properties,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_account_manager_return_from_create_account
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Account);
    void                tp_svc_account_manager_implement_create_account
                                                            (TpSvcAccountManagerClass *klass,
                                                             tp_svc_account_manager_create_account_impl impl);

## Object Hierarchy

      GInterface
       +----TpSvcAccountManager

## Signals

      "account-removed"                                : Has Details
      "account-validity-changed"                       : Has Details

## Description

The TpSvcAccountManager interface (auto-generated from the Telepathy spec) makes it easier to export an object implementing the Telepathy AccountManager interface, with the correct method and signal signatures, and emit signals from that object in a type-safe way.

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

## Details

### TpSvcAccountManager

    typedef struct _TpSvcAccountManager TpSvcAccountManager;

Dummy typedef representing any implementation of this interface.

### TpSvcAccountManagerClass

    typedef struct _TpSvcAccountManagerClass TpSvcAccountManagerClass;

The class of TpSvcAccountManager.

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_manager (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_account_manager_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (create_account);
    #undef IMPLEMENT
    }

### tp_svc_account_manager_emit_account_removed ()

    void                tp_svc_account_manager_emit_account_removed
                                                            (gpointer instance,
                                                             const gchar *arg_Account);

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

`instance` : | The object implementing this interface
`arg_Account` : | const gchar * (FIXME, generate documentation)

### tp_svc_account_manager_emit_account_validity_changed ()

    void                tp_svc_account_manager_emit_account_validity_changed
                                                            (gpointer instance,
                                                             const gchar *arg_Account,
                                                             gboolean arg_Valid);

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

`instance` : | The object implementing this interface
`arg_Account` : | const gchar * (FIXME, generate documentation)
`arg_Valid` : | gboolean (FIXME, generate documentation)

### tp_svc_account_manager_create_account_impl ()

    void                (*tp_svc_account_manager_create_account_impl)
                                                            (TpSvcAccountManager *self,
                                                             const gchar *in_Connection_Manager,
                                                             const gchar *in_Protocol,
                                                             const gchar *in_Display_Name,
                                                             GHashTable *in_Parameters,
                                                             GHashTable *in_Properties,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_account_manager_return_from_create_account ()

    void                tp_svc_account_manager_return_from_create_account
                                                            (DBusGMethodInvocation *context,
                                                             const gchar *out_Account);

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_Account` : | const gchar * (FIXME, generate documentation)

### tp_svc_account_manager_implement_create_account ()

    void                tp_svc_account_manager_implement_create_account
                                                            (TpSvcAccountManagerClass *klass,
                                                             tp_svc_account_manager_create_account_impl impl);

Register an implementation for the CreateAccount 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 CreateAccount D-Bus method

## Signal Details

### The `"account-removed"` signal

    void                user_function                      (TpSvcAccountManager *self,
                                                            DBusGObjectPath     *arg_Account,
                                                            gpointer             user_data)        : Has Details

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

`self` : | an object
`arg_Account` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

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

    void                user_function                      (TpSvcAccountManager *self,
                                                            DBusGObjectPath     *arg_Account,
                                                            gboolean             arg_Valid,
                                                            gpointer             user_data)        : Has Details

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

`self` : | an object
`arg_Account` : | const gchar * (FIXME, generate documentation)
`arg_Valid` : | gboolean (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.