Top |
struct | AgAccountClass |
enum | AgSettingSource |
struct | AgAccountSettingIter |
typedef | AgAccountWatch |
An AgAccount is an object which represents an account. It provides a method for enabling/disabling the account and methods for editing the account settings.
Accounts are created by AgManager with ag_manager_create_account()
, and
deleted by AgAccount with ag_account_delete()
. These operations, and any
other operations which modify the account settings, must be followed by
ag_account_store()
before the changes are committed to the database.
Example 1. Creating a new AgAccount
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
GMainLoop *main_loop = NULL; gboolean account_cleanup_idle (gpointer user_data) { AgManager *manager; AgAccount *account = AG_ACCOUNT (user_data); manager = ag_account_get_manager (account); g_object_unref (account); g_object_unref (manager); g_main_loop_quit (main_loop); return FALSE; } void account_stored_cb (AgAccount *account, const GError *error, gpointer user_data) { AgManager *manager = AG_MANAGER (user_data); if (error != NULL) { g_warning ("Account with ID '%u' failed to store, with error: %s", account->id, error->message); } else { g_print ("Account stored with ID: %u", account->id); } /* Clean up in an idle callback. */ g_idle_add (account_cleanup_idle, account); g_main_loop_run (main_loop); } void store_account (void) { AgManager *manager; GList *providers; const gchar *provider_name; AgAccount *account; main_loop = g_main_loop_new (NULL, FALSE); manager = ag_manager_new (); providers = ag_manager_list_providers (manager); g_assert (providers != NULL); provider_name = ag_provider_get_name ((AgProvider *) providers->data); account = ag_manager_create_account (manager, provider_name); ag_provider_list_free (providers); /* The account is not valid until it has been stored. */ ag_account_store (account, account_stored_cb, (gpointer) manager); } |
gboolean ag_account_supports_service (AgAccount *account
,const gchar *service_type
);
Get whether service_type
is supported on account
.
GList *
ag_account_list_services (AgAccount *account
);
Get the list of services for account
. If the AgManager was created with
specified service_type this will return only services with this service_type.
a GList of AgService
items representing all the services supported by this account. Must be
free'd with ag_service_list_free()
.
[transfer full][element-type AgService]
GList * ag_account_list_services_by_type (AgAccount *account
,const gchar *service_type
);
Get the list of services supported by account
, filtered by service_type
.
account |
the AgAccount. |
|
service_type |
the service type which all the returned services should provide. |
a GList of AgService
items representing all the services supported by this account which provide
service_type
. Must be free'd with ag_service_list_free()
.
[transfer full][element-type AgService]
GList *
ag_account_list_enabled_services (AgAccount *account
);
Gets a list of services that are enabled for account
.
a GList of AgService
items representing all the services which are enabled. Must be free'd with
ag_service_list_free()
.
[transfer full][element-type AgService]
AgManager *
ag_account_get_manager (AgAccount *account
);
Get the AgManager for account
.
const gchar *
ag_account_get_provider_name (AgAccount *account
);
Get the name of the provider of account
.
const gchar *
ag_account_get_display_name (AgAccount *account
);
Get the display name of account
.
void ag_account_set_display_name (AgAccount *account
,const gchar *display_name
);
Changes the display name for account
to display_name
.
void ag_account_select_service (AgAccount *account
,AgService *service
);
Selects the configuration of service service
: from now on, all the
subsequent calls on the AgAccount configuration will act on the service
.
If service
is NULL
, the global account configuration is selected.
Note that if account
is being shared with other code one must take special
care to make sure the desired service is always selected.
AgService *
ag_account_get_selected_service (AgAccount *account
);
Gets the selected AgService for account
.
gboolean
ag_account_get_enabled (AgAccount *account
);
Gets whether the selected service is enabled for account
.
void ag_account_set_enabled (AgAccount *account
,gboolean enabled
);
Sets the "enabled" flag on the selected service for account
.
void
ag_account_delete (AgAccount *account
);
Deletes the account. Call ag_account_store()
in order to record the change
in the storage.
AgSettingSource ag_account_get_value (AgAccount *account
,const gchar *key
,GValue *value
);
ag_account_get_value
has been deprecated since version 1.4 and should not be used in newly-written code.
Use ag_account_get_variant()
instead.
Gets the value of the configuration setting key
: value
must be a
GValue initialized to the type of the setting.
account |
the AgAccount. |
|
key |
the name of the setting to retrieve. |
|
value |
an initialized GValue to receive the setting's value. |
[inout] |
one of AgSettingSource: AG_SETTING_SOURCE_NONE
if the setting is
not present, AG_SETTING_SOURCE_ACCOUNT
if the setting comes from the
account configuration, or AG_SETTING_SOURCE_PROFILE
if the value comes as
predefined in the profile.
void ag_account_set_value (AgAccount *account
,const gchar *key
,const GValue *value
);
ag_account_set_value
has been deprecated since version 1.4 and should not be used in newly-written code.
Use ag_account_set_variant()
instead.
Sets the value of the configuration setting key
to the value value
.
If value
is NULL
, then the setting is unset.
account |
the AgAccount. |
|
key |
the name of the setting to change. |
|
value |
a GValue holding the new setting's value. |
[allow-none] |
GVariant * ag_account_get_variant (AgAccount *account
,const gchar *key
,AgSettingSource *source
);
Gets the value of the configuration setting key
.
account |
the AgAccount. |
|
key |
the name of the setting to retrieve. |
|
source |
a pointer to an AgSettingSource variable which will tell whether the setting was retrieved from the accounts DB or from a service template. |
[allow-none][out] |
a GVariant holding the setting value, or
NULL
. The returned GVariant is owned by the account, and no guarantees
are made about its lifetime. If the client wishes to keep it, it should
call g_variant_ref()
on it.
[transfer none]
Since: 1.4
void ag_account_set_variant (AgAccount *account
,const gchar *key
,GVariant *value
);
Sets the value of the configuration setting key
to the value value
.
If value
has a floating reference, the account
will take ownership
of it.
If value
is NULL
, then the setting is unset.
account |
the AgAccount. |
|
key |
the name of the setting to change. |
|
value |
a GVariant holding the new setting's value. |
[allow-none] |
Since: 1.4
void
ag_account_settings_iter_free (AgAccountSettingIter *iter
);
Frees the memory associated with an AgAccountSettingIter.
void ag_account_settings_iter_init (AgAccount *account
,AgAccountSettingIter *iter
,const gchar *key_prefix
);
Initializes iter
to iterate over the account settings. If key_prefix
is
not NULL
, only keys whose names start with key_prefix
will be iterated
over.
account |
the AgAccount. |
|
iter |
an uninitialized AgAccountSettingIter structure. |
|
key_prefix |
enumerate only the settings whose key starts with
|
[allow-none] |
gboolean ag_account_settings_iter_next (AgAccountSettingIter *iter
,const gchar **key
,const GValue **value
);
ag_account_settings_iter_next
has been deprecated since version 1.4 and should not be used in newly-written code.
Use ag_account_settings_iter_get_next()
instead.
Iterates over the account keys. iter
must be an iterator previously
initialized with ag_account_settings_iter_init()
.
iter |
an initialized AgAccountSettingIter structure. |
|
key |
a pointer to a string receiving the key name. |
[out callee-allocates][transfer none] |
value |
a pointer to a pointer to a GValue, to receive the key value. |
[out callee-allocates][transfer none] |
gboolean ag_account_settings_iter_get_next (AgAccountSettingIter *iter
,const gchar **key
,GVariant **value
);
Iterates over the account keys. iter
must be an iterator previously
initialized with ag_account_settings_iter_init()
.
iter |
an initialized AgAccountSettingIter structure. |
|
key |
a pointer to a string receiving the key name. |
[out callee-allocates][transfer none] |
value |
a pointer to a pointer to a GVariant, to receive the key value. |
[out callee-allocates][transfer none] |
TRUE
if key
and value
have been set, FALSE
if we there are no
more account settings to iterate over.
Since: 1.4
AgAccountSettingIter * ag_account_get_settings_iter (AgAccount *account
,const gchar *key_prefix
);
Creates a new iterator. This method is useful for language bindings only.
account |
the AgAccount. |
|
key_prefix |
enumerate only the settings whose key starts with
|
[allow-none] |
void (*AgAccountNotifyCb) (AgAccount *account
,const gchar *key
,gpointer user_data
);
This callback is invoked when the value of an account configuration setting
changes. If the callback was installed with ag_account_watch_key()
then key
is the name of the configuration setting which changed; if it was installed
with ag_account_watch_dir()
then key
is the same key prefix that was used
when installing this callback.
account |
the AgAccount. |
|
key |
the name of the key whose value has changed. |
|
user_data |
the user data that was passed when installing this callback. |
AgAccountWatch ag_account_watch_key (AgAccount *account
,const gchar *key
,AgAccountNotifyCb callback
,gpointer user_data
);
Installs a watch on key
: callback
will be invoked whenever the value of
key
changes (or the key is removed).
account |
the AgAccount. |
|
key |
the name of the key to watch. |
|
callback |
a AgAccountNotifyCb callback to be called. |
[scope async] |
user_data |
pointer to user data, to be passed to |
AgAccountWatch ag_account_watch_dir (AgAccount *account
,const gchar *key_prefix
,AgAccountNotifyCb callback
,gpointer user_data
);
Installs a watch on all the keys under key_prefix
: callback
will be
invoked whenever the value of any of these keys changes (or a key is
removed).
account |
the AgAccount. |
|
key_prefix |
the prefix of the keys to watch. |
|
callback |
a AgAccountNotifyCb callback to be called. |
[scope async] |
user_data |
pointer to user data, to be passed to |
void ag_account_remove_watch (AgAccount *account
,AgAccountWatch watch
);
Removes the notification callback identified by watch
.
void (*AgAccountStoreCb) (AgAccount *account
,const GError *error
,gpointer user_data
);
This callback is invoked when storing the account settings is completed. If
error
is not NULL
, then some error occurred and the data has most likely
not been written.
account |
the AgAccount. |
|
error |
a GError, or |
|
user_data |
the user data that was passed to |
void ag_account_store (AgAccount *account
,AgAccountStoreCb callback
,gpointer user_data
);
ag_account_store
has been deprecated since version 1.4 and should not be used in newly-written code.
Use ag_account_store_async()
instead.
Commit the changed account settings to the account database, and invoke
callback
when the operation has been completed.
account |
the AgAccount. |
|
callback |
function to be called when the settings have been written. |
[scope async] |
user_data |
pointer to user data, to be passed to |
void ag_account_store_async (AgAccount *account
,GCancellable *cancellable
,GAsyncReadyCallback callback
,gpointer user_data
);
Commit the changed account settings to the account database, and invoke
callback
when the operation has been completed.
account |
the AgAccount. |
|
cancellable |
optional GCancellable object, |
[allow-none] |
callback |
function to be called when the settings have been written. |
[scope async] |
user_data |
pointer to user data, to be passed to |
Since: 1.4
gboolean ag_account_store_finish (AgAccount *account
,GAsyncResult *res
,GError **error
);
Finishes the store operation started by ag_account_store_async()
.
account |
the AgAccount. |
|
res |
A GAsyncResult obtained from the GAsyncReadyCallback passed to
|
|
error |
return location for error, or |
Since: 1.4
gboolean ag_account_store_blocking (AgAccount *account
,GError **error
);
Commit the changed account settings to the account database, and invoke
callback
when the operation has been completed.
void ag_account_sign (AgAccount *account
,const gchar *key
,const gchar *token
);
Creates signature of the key
with given token
. The account must be
stored prior to calling this function.
account |
the AgAccount. |
|
key |
the name of the key or prefix of the keys to be signed. |
|
token |
a signing token ( |
gboolean ag_account_verify (AgAccount *account
,const gchar *key
,const gchar **token
);
Verify if the key is signed and the signature matches the value
and provides the aegis token which was used for signing the key
.
account |
the AgAccount. |
|
key |
the name of the key or prefix of the keys to be verified. |
|
token |
location to receive the pointer to aegis token. |
gboolean ag_account_verify_with_tokens (AgAccount *account
,const gchar *key
,const gchar **tokens
);
Verify if the key
is signed with any of the tokens from the tokens
and the signature is valid.
account |
the AgAccount. |
|
key |
the name of the key or prefix of the keys to be verified. |
|
tokens |
array of aegis tokens. |
struct AgAccountClass { GObjectClass parent_class; void (*_ag_reserved1) (void); void (*_ag_reserved2) (void); void (*_ag_reserved3) (void); void (*_ag_reserved4) (void); void (*_ag_reserved5) (void); void (*_ag_reserved6) (void); void (*_ag_reserved7) (void); };
Use the accessor functions below.
struct AgAccountSettingIter { AgAccount *account; };
Iterator for account settings.
typedef struct _AgAccountWatch *AgAccountWatch;
An opaque struct returned from ag_account_watch_dir()
and
ag_account_watch_key()
.
“display-name”
property “display-name” char *
The display name of the account.
Owner: AgAccount
Flags: Read
Default value: NULL
Since: 1.4
“enabled”
property “enabled” gboolean
Whether the account is currently enabled.
Owner: AgAccount
Flags: Read
Default value: FALSE
Since: 1.4
“foreign”
property “foreign” gboolean
foreign.
Owner: AgAccount
Flags: Write / Construct Only
Default value: FALSE
“id”
property “id” guint
The AgAccountId for the account.
Owner: AgAccount
Flags: Read / Write / Construct Only
Default value: 0
“manager”
property“manager” AgManager *
The AgManager from which the account was instantiated.
Owner: AgAccount
Flags: Read / Write / Construct Only
Since: 1.4
“provider”
property “provider” char *
The ID of the provider for the account.
Owner: AgAccount
Flags: Read / Write / Construct Only
Default value: NULL
Since: 1.4
“deleted”
signalvoid user_function (AgAccount *account, gpointer user_data)
Emitted when the account has been deleted.
Flags: Run Last
“display-name-changed”
signalvoid user_function (AgAccount *account, gpointer user_data)
Emitted when the account display name has changed.
Flags: Run Last
“enabled”
signalvoid user_function (AgAccount *account, char *service, gboolean enabled, gpointer user_data)
Emitted when the account "enabled" status was changed for one of its services, or for the account globally.
account |
the AgAccount. |
|
service |
the service which was enabled/disabled, or |
|
enabled |
the new state of the |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last