| Mission Control Plugins Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#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);
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: