McpAccountStorage

McpAccountStorage — Account Storage object, implemented by plugins

Synopsis

#include <mission-control-plugins/mission-control-plugins.h>

#define             MCP_ACCOUNT_STORAGE_PLUGIN_PRIO_READONLY
#define             MCP_ACCOUNT_STORAGE_PLUGIN_PRIO_DEFAULT
#define             MCP_ACCOUNT_STORAGE_PLUGIN_PRIO_NORMAL
#define             MCP_ACCOUNT_STORAGE_PLUGIN_PRIO_KEYRING
struct              McpAccountStorage;
gint                mcp_account_storage_priority        (const McpAccountStorage *storage);
gboolean            mcp_account_storage_get             (const McpAccountStorage *storage,
                                                         McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *key);
gboolean            mcp_account_storage_set             (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *key,
                                                         const gchar *value);
gchar *             mcp_account_storage_create          (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *manager,
                                                         const gchar *protocol,
                                                         GHashTable *params,
                                                         GError **error);
gboolean            mcp_account_storage_delete          (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *key);
void                mcp_account_storage_ready           (const McpAccountStorage *storage,
                                                         const McpAccountManager *am);
gboolean            mcp_account_storage_commit          (const McpAccountStorage *storage,
                                                         const McpAccountManager *am);
gboolean            mcp_account_storage_commit_one      (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *account);
GList *             mcp_account_storage_list            (const McpAccountStorage *storage,
                                                         const McpAccountManager *am);
void                mcp_account_storage_get_identifier  (const McpAccountStorage *storage,
                                                         const gchar *account,
                                                         GValue *identifier);
GHashTable *        mcp_account_storage_get_additional_info
                                                        (const McpAccountStorage *storage,
                                                         const gchar *account);
guint               mcp_account_storage_get_restrictions
                                                        (const McpAccountStorage *storage,
                                                         const gchar *account);
const gchar *       mcp_account_storage_name            (const McpAccountStorage *storage);
const gchar *       mcp_account_storage_description     (const McpAccountStorage *storage);
const gchar *       mcp_account_storage_provider        (const McpAccountStorage *storage);
gboolean            mcp_account_storage_owns            (McpAccountStorage *storage,
                                                         McpAccountManager *am,
                                                         const gchar *account);
gboolean            mcp_account_storage_set_attribute   (McpAccountStorage *storage,
                                                         McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *attribute,
                                                         GVariant *value,
                                                         McpAttributeFlags flags);
gboolean            mcp_account_storage_set_parameter   (McpAccountStorage *storage,
                                                         McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *parameter,
                                                         GVariant *value,
                                                         McpParameterFlags flags);
void                mcp_account_storage_emit_created    (McpAccountStorage *storage,
                                                         const gchar *account);
void                mcp_account_storage_emit_altered    (McpAccountStorage *storage,
                                                         const gchar *account);
void                mcp_account_storage_emit_altered_one
                                                        (McpAccountStorage *storage,
                                                         const gchar *account,
                                                         const gchar *key);
void                mcp_account_storage_emit_deleted    (McpAccountStorage *storage,
                                                         const gchar *account);
void                mcp_account_storage_emit_toggled    (McpAccountStorage *storage,
                                                         const gchar *account,
                                                         gboolean enabled);
void                mcp_account_storage_emit_reconnect  (McpAccountStorage *storage,
                                                         const gchar *account);
                    McpAccountStorageIface;

Description

Plugins may implement McpAccountStorage in order to provide account parameter storage backends to the AccountManager object.

To do so, the plugin must implement a GObject subclass that implements McpAccountStorage, then return an instance of that subclass from mcp_plugin_ref_nth_object().

Many methods take "the unique name of an account" as an argument. In this plugin, that means the unique "tail" of the account's object path, for instance "gabble/jabber/chris_40example_2ecom". The account's full object path is obtained by prepending TP_ACCOUNT_OBJECT_PATH_BASE.

A complete implementation of this interface with all methods would look something like this:

Example 1. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32