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
gboolean            (*McpAccountStorageGetFunc)         (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *key);
gboolean            (*McpAccountStorageSetFunc)         (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *key,
                                                         const gchar *val);
gchar *             (*McpAccountStorageCreate)          (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *manager,
                                                         const gchar *protocol,
                                                         GHashTable *params,
                                                         GError **error);
gboolean            (*McpAccountStorageDeleteFunc)      (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *account,
                                                         const gchar *key);
GList *             (*McpAccountStorageListFunc)        (const McpAccountStorage *storage,
                                                         const McpAccountManager *am);
gboolean            (*McpAccountStorageCommitFunc)      (const McpAccountStorage *storage,
                                                         const McpAccountManager *am);
gboolean            (*McpAccountStorageCommitOneFunc)   (const McpAccountStorage *storage,
                                                         const McpAccountManager *am,
                                                         const gchar *account);
void                (*McpAccountStorageReadyFunc)       (const McpAccountStorage *storage,
                                                         const McpAccountManager *am);
void                (*McpAccountStorageGetIdentifierFunc)
                                                        (const McpAccountStorage *storage,
                                                         const gchar *account,
                                                         GValue *identifier);
GHashTable *        (*McpAccountStorageGetAdditionalInfoFunc)
                                                        (const McpAccountStorage *storage,
                                                         const gchar *account);
guint               (*McpAccountStorageGetRestrictionsFunc)
                                                        (const McpAccountStorage *storage,
                                                         const gchar *account);
struct              McpAccountStorageIface;
void                mcp_account_storage_iface_set_priority
                                                        (McpAccountStorageIface *iface,
                                                         guint prio);
void                mcp_account_storage_iface_set_name  (McpAccountStorageIface *iface,
                                                         const gchar *name);
void                mcp_account_storage_iface_set_desc  (McpAccountStorageIface *iface,
                                                         const gchar *desc);
void                mcp_account_storage_iface_set_provider
                                                        (McpAccountStorageIface *iface,
                                                         const gchar *provider);
void                mcp_account_storage_iface_implement_get
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageGetFunc method);
void                mcp_account_storage_iface_implement_set
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageSetFunc method);
void                mcp_account_storage_iface_implement_create
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageCreate method);
void                mcp_account_storage_iface_implement_delete
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageDeleteFunc method);
void                mcp_account_storage_iface_implement_list
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageListFunc method);
void                mcp_account_storage_iface_implement_commit
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageCommitFunc method);
void                mcp_account_storage_iface_implement_commit_one
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageCommitOneFunc method);
void                mcp_account_storage_iface_implement_ready
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageReadyFunc method);
void                mcp_account_storage_iface_implement_get_identifier
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageGetIdentifierFunc method);
void                mcp_account_storage_iface_implement_get_additional_info
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageGetAdditionalInfoFunc method);
void                mcp_account_storage_iface_implement_get_restrictions
                                                        (McpAccountStorageIface *iface,
                                                         McpAccountStorageGetRestrictionsFunc method);
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);
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);

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

The contents of the McpAccountStorage struct are not public, so to provide an implementation of the virtual methods, plugins should call mcp_account_operation_iface_implement_*() from the interface initialization function, 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
33