folks Reference Manual | ||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
FolksPersonaStoreFolksPersonaStore — A store for FolksPersonas. |
#define FOLKS_TYPE_PERSONA_STORE void folks_persona_store_prepare (FolksPersonaStore *self
,GAsyncReadyCallback _callback_
,gpointer _user_data_
); void folks_persona_store_prepare_finish (FolksPersonaStore *self
,GAsyncResult *_res_
,GError **error
); void folks_persona_store_flush (FolksPersonaStore *self
,GAsyncReadyCallback _callback_
,gpointer _user_data_
); void folks_persona_store_flush_finish (FolksPersonaStore *self
,GAsyncResult *_res_
); void folks_persona_store_add_persona_from_details (FolksPersonaStore *self
,GHashTable *details
,GAsyncReadyCallback _callback_
,gpointer _user_data_
); FolksPersona * folks_persona_store_add_persona_from_details_finish (FolksPersonaStore *self
,GAsyncResult *_res_
,GError **error
); void folks_persona_store_remove_persona (FolksPersonaStore *self
,FolksPersona *persona
,GAsyncReadyCallback _callback_
,gpointer _user_data_
); void folks_persona_store_remove_persona_finish (FolksPersonaStore *self
,GAsyncResult *_res_
,GError **error
); const gchar * folks_persona_store_get_type_id (FolksPersonaStore *self
); const gchar * folks_persona_store_get_display_name (FolksPersonaStore *self
); const gchar * folks_persona_store_get_id (FolksPersonaStore *self
); GeeMap * folks_persona_store_get_personas (FolksPersonaStore *self
); FolksMaybeBool folks_persona_store_get_can_add_personas (FolksPersonaStore *self
); FolksMaybeBool folks_persona_store_get_can_alias_personas (FolksPersonaStore *self
); FolksMaybeBool folks_persona_store_get_can_group_personas (FolksPersonaStore *self
); FolksMaybeBool folks_persona_store_get_can_remove_personas (FolksPersonaStore *self
); gboolean folks_persona_store_get_is_prepared (FolksPersonaStore *self
); gboolean folks_persona_store_get_is_quiescent (FolksPersonaStore *self
); gboolean folks_persona_store_get_is_writeable (FolksPersonaStore *self
); void folks_persona_store_set_is_writeable (FolksPersonaStore *self
,gboolean value
); FolksPersonaStoreTrust folks_persona_store_get_trust_level (FolksPersonaStore *self
); void folks_persona_store_set_trust_level (FolksPersonaStore *self
,FolksPersonaStoreTrust value
); gchar ** folks_persona_store_get_always_writeable_properties (FolksPersonaStore *self
,int *result_length1
); gboolean folks_persona_store_get_is_primary_store (FolksPersonaStore *self
); gboolean folks_persona_store_get_is_user_set_default (FolksPersonaStore *self
); const gchar * folks_persona_store_detail_key (FolksPersonaDetail detail
); struct FolksPersonaStore; enum FolksPersonaStoreTrust; enum FolksPersonaDetail; enum FolksPersonaStoreError;
GObject +----FolksPersonaStore
GEnum +----FolksPersonaStoreTrust
GEnum +----FolksPersonaDetail
"always-writeable-properties" GStrv : Read "can-add-personas" FolksMaybeBool : Read "can-alias-personas" FolksMaybeBool : Read "can-group-personas" FolksMaybeBool : Read "can-remove-personas" FolksMaybeBool : Read "display-name" gchar* : Read / Write / Construct Only "id" gchar* : Read / Write / Construct Only "is-prepared" gboolean : Read "is-primary-store" gboolean : Read / Write "is-quiescent" gboolean : Read "is-user-set-default" gboolean : Read / Write "is-writeable" gboolean : Read / Write "personas" GeeMap* : Read "trust-level" FolksPersonaStoreTrust : Read / Write "type-id" gchar* : Read
After creating a PersonaStore instance, you must connect to the "personas-changed" signal, then call
, otherwise a race condition may occur between emission of "personas-changed" and your code connecting to it.folks_persona_store_prepare()
#define FOLKS_TYPE_PERSONA_STORE (folks_persona_store_get_type ())
The type for FolksPersonaStore.
void folks_persona_store_prepare (FolksPersonaStore *self
,GAsyncReadyCallback _callback_
,gpointer _user_data_
);
Prepare the PersonaStore for use.
This connects the PersonaStore to whichever backend-specific services it requires to be able to provide FolksPersonas. This should be called after connecting to the "personas-changed" signal, or a race condition could occur, with the signal being emitted before your code has connected to it, and FolksPersonas getting "lost" as a result.
This is normally handled transparently by the FolksIndividualAggregator.
If this function throws an error, the PersonaStore will not be functional.
This function is guaranteed to be idempotent (since version 0.3.0).
Concurrent calls to this function from different threads will block until preparation has completed. However, concurrent calls to this function from a single thread might not, i.e. the first call will block but subsequent calls might return before the first one. (Though they will be safe in every other respect.)
See also: folks_persona_store_prepare_finish()
|
the FolksPersonaStore instance |
|
callback to call when the request is satisfied. [scope async] |
|
the data to pass to _callback_ function. [closure]
|
Since 0.1.11
void folks_persona_store_prepare_finish (FolksPersonaStore *self
,GAsyncResult *_res_
,GError **error
);
Prepare the PersonaStore for use.
This connects the PersonaStore to whichever backend-specific services it requires to be able to provide FolksPersonas. This should be called after connecting to the "personas-changed" signal, or a race condition could occur, with the signal being emitted before your code has connected to it, and FolksPersonas getting "lost" as a result.
This is normally handled transparently by the FolksIndividualAggregator.
If this function throws an error, the PersonaStore will not be functional.
This function is guaranteed to be idempotent (since version 0.3.0).
Concurrent calls to this function from different threads will block until preparation has completed. However, concurrent calls to this function from a single thread might not, i.e. the first call will block but subsequent calls might return before the first one. (Though they will be safe in every other respect.)
See also: folks_persona_store_prepare()
|
the FolksPersonaStore instance |
|
a GAsyncResult |
|
location to store the error occuring, or NULL to ignore |
Since 0.1.11
void folks_persona_store_flush (FolksPersonaStore *self
,GAsyncReadyCallback _callback_
,gpointer _user_data_
);
Flush any pending changes to the PersonaStore's backing store.
PersonaStores may (transparently) implement caching or I/O queueing which means that changes to their FolksPersonas may not be immediately written to the PersonaStore's backing store. Calling this function will force all pending changes to be flushed to the backing store.
This must not be called before
.folks_persona_store_prepare()
See also: folks_persona_store_flush_finish()
|
the FolksPersonaStore instance |
|
callback to call when the request is satisfied. [scope async] |
|
the data to pass to _callback_ function. [closure]
|
Since 0.1.17
void folks_persona_store_flush_finish (FolksPersonaStore *self
,GAsyncResult *_res_
);
Flush any pending changes to the PersonaStore's backing store.
PersonaStores may (transparently) implement caching or I/O queueing which means that changes to their FolksPersonas may not be immediately written to the PersonaStore's backing store. Calling this function will force all pending changes to be flushed to the backing store.
This must not be called before
.folks_persona_store_prepare()
See also: folks_persona_store_flush()
|
the FolksPersonaStore instance |
|
a GAsyncResult |
Since 0.1.17
void folks_persona_store_add_persona_from_details (FolksPersonaStore *self
,GHashTable *details
,GAsyncReadyCallback _callback_
,gpointer _user_data_
);
Add a new FolksPersona to the PersonaStore.
The FolksPersona will be created by the PersonaStore backend from the key-value pairs given in `details`.
All additions through this function will later be emitted through the personas-changed signal to be notified of the new FolksPersona. The return value is purely for convenience, since it can be complicated to correlate the provided details with the final Persona.
If the store is offline (or PersonaStore.prepare() hasn't yet been called successfully), this function will throw FOLKS_PERSONA_STORE_ERROR_STORE_OFFLINE. It's the responsibility of the caller to cache details and re-try this function if it wishes to make offline adds work.
If the details are not recognised or are invalid, FOLKS_PERSONA_STORE_ERROR_INVALID_ARGUMENT will be thrown. A default set of possible details are defined by FolksPersonaDetail but backends can either support a subset or superset of the suggested defaults.
If a FolksPersona with the given details already exists in the store, no error will be thrown and this function will return `null`.
See also: folks_persona_store_add_persona_from_details_finish()
|
the FolksPersonaStore instance |
|
a key-value map of details to use in creating the new FolksPersona. [in] |
|
callback to call when the request is satisfied. [scope async] |
|
the data to pass to _callback_ function. [closure]
|
FolksPersona * folks_persona_store_add_persona_from_details_finish (FolksPersonaStore *self
,GAsyncResult *_res_
,GError **error
);
Add a new FolksPersona to the PersonaStore.
The FolksPersona will be created by the PersonaStore backend from the key-value pairs given in `details`.
All additions through this function will later be emitted through the personas-changed signal to be notified of the new FolksPersona. The return value is purely for convenience, since it can be complicated to correlate the provided details with the final Persona.
If the store is offline (or PersonaStore.prepare() hasn't yet been called successfully), this function will throw FOLKS_PERSONA_STORE_ERROR_STORE_OFFLINE. It's the responsibility of the caller to cache details and re-try this function if it wishes to make offline adds work.
If the details are not recognised or are invalid, FOLKS_PERSONA_STORE_ERROR_INVALID_ARGUMENT will be thrown. A default set of possible details are defined by FolksPersonaDetail but backends can either support a subset or superset of the suggested defaults.
If a FolksPersona with the given details already exists in the store, no error will be thrown and this function will return `null`.
See also: folks_persona_store_add_persona_from_details()
|
the FolksPersonaStore instance |
|
a GAsyncResult |
|
location to store the error occuring, or NULL to ignore. [error-domains FolksPersonaStoreError]
|
Returns : |
the new FolksPersona or `null` if the corresponding Persona already existed. If non-`null`, the new FolksPersona will also be amongst the FolksPersona(s) in a future emission of "personas-changed". |
void folks_persona_store_remove_persona (FolksPersonaStore *self
,FolksPersona *persona
,GAsyncReadyCallback _callback_
,gpointer _user_data_
);
Remove a FolksPersona from the PersonaStore.
It isn't guaranteed that the Persona will actually be removed by the time this asynchronous function finishes. The successful removal of the Persona will be signalled through emission of "personas-changed".
If the store is offline (or PersonaStore.prepare() hasn't yet been called successfully), this function will throw FOLKS_PERSONA_STORE_ERROR_STORE_OFFLINE. It's the responsibility of the caller to cache details and re-try this function if it wishes to make offline removals work.
See also: folks_persona_store_remove_persona_finish()
|
the FolksPersonaStore instance |
|
the FolksPersona to remove. [in] |
|
callback to call when the request is satisfied. [scope async] |
|
the data to pass to _callback_ function. [closure]
|
Since 0.1.11
void folks_persona_store_remove_persona_finish (FolksPersonaStore *self
,GAsyncResult *_res_
,GError **error
);
Remove a FolksPersona from the PersonaStore.
It isn't guaranteed that the Persona will actually be removed by the time this asynchronous function finishes. The successful removal of the Persona will be signalled through emission of "personas-changed".
If the store is offline (or PersonaStore.prepare() hasn't yet been called successfully), this function will throw FOLKS_PERSONA_STORE_ERROR_STORE_OFFLINE. It's the responsibility of the caller to cache details and re-try this function if it wishes to make offline removals work.
See also: folks_persona_store_remove_persona()
|
the FolksPersonaStore instance |
|
a GAsyncResult |
|
location to store the error occuring, or NULL to ignore. [error-domains FolksPersonaStoreError]
|
Since 0.1.11
const gchar * folks_persona_store_get_type_id (FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "type-id" property |
const gchar * folks_persona_store_get_display_name
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "display-name" property |
const gchar * folks_persona_store_get_id (FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "id" property |
GeeMap * folks_persona_store_get_personas (FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "personas" property |
FolksMaybeBool folks_persona_store_get_can_add_personas
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "can-add-personas" property |
FolksMaybeBool folks_persona_store_get_can_alias_personas
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "can-alias-personas" property |
FolksMaybeBool folks_persona_store_get_can_group_personas
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "can-group-personas" property |
FolksMaybeBool folks_persona_store_get_can_remove_personas
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "can-remove-personas" property |
gboolean folks_persona_store_get_is_prepared (FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "is-prepared" property |
gboolean folks_persona_store_get_is_quiescent
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "is-quiescent" property |
gboolean folks_persona_store_get_is_writeable
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "is-writeable" property |
void folks_persona_store_set_is_writeable (FolksPersonaStore *self
,gboolean value
);
|
the FolksPersonaStore instance to modify |
|
the new value of the "is-writeable" property |
FolksPersonaStoreTrust folks_persona_store_get_trust_level
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "trust-level" property |
void folks_persona_store_set_trust_level (FolksPersonaStore *self
,FolksPersonaStoreTrust value
);
|
the FolksPersonaStore instance to modify |
|
the new value of the "trust-level" property |
gchar ** folks_persona_store_get_always_writeable_properties (FolksPersonaStore *self
,int *result_length1
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "always-writeable-properties" property |
gboolean folks_persona_store_get_is_primary_store
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "is-primary-store" property |
gboolean folks_persona_store_get_is_user_set_default
(FolksPersonaStore *self
);
|
the FolksPersonaStore instance to query |
Returns : |
the value of the "is-user-set-default" property |
const gchar * folks_persona_store_detail_key (FolksPersonaDetail detail
);
Returns the key corresponding to detail
, for use in the details param of
.
folks_persona_store_add_persona_from_details()
|
the FolksPersonaDetail to lookup. [in] |
Returns : |
the corresponding property name, or `null` if `detail` is invalid. [transfer none] |
Since 0.5.0
struct FolksPersonaStore;
A store for FolksPersonas.
After creating a PersonaStore instance, you must connect to the "personas-changed" signal, then call
, otherwise a race condition may occur between emission of "personas-changed" and your code connecting to it.folks_persona_store_prepare()
typedef enum { FOLKS_PERSONA_STORE_TRUST_NONE, FOLKS_PERSONA_STORE_TRUST_PARTIAL, FOLKS_PERSONA_STORE_TRUST_FULL } FolksPersonaStoreTrust;
Trust level for a FolksPersonaStore's FolksPersonas for linking purposes.
The FolksPersonas aren't trusted at all, and cannot be linked. This should be used for FolksPersonaStores where even the FolksPersona UID could be maliciously edited to corrupt FolksPersona links, or where the UID changes regularly. |
|
Only the "uid" property is trusted for linking. In practice, this means that FolksPersonas from this FolksPersonaStore will not contribute towards the linking process, but can be linked together by their UIDs using data from FolksPersonas from a fully-trusted FolksPersonaStore. |
|
Every property in "linkable-properties" is trusted. This should only be used for user-controlled FolksPersonaStores, as if a remote store is compromised, malicious changes could be made to its data which corrupt the user's FolksPersona links. |
Since 0.1.13
typedef enum { FOLKS_PERSONA_DETAIL_INVALID = -1, FOLKS_PERSONA_DETAIL_ALIAS = 0, FOLKS_PERSONA_DETAIL_AVATAR, FOLKS_PERSONA_DETAIL_BIRTHDAY, FOLKS_PERSONA_DETAIL_EMAIL_ADDRESSES, FOLKS_PERSONA_DETAIL_FULL_NAME, FOLKS_PERSONA_DETAIL_GENDER, FOLKS_PERSONA_DETAIL_IM_ADDRESSES, FOLKS_PERSONA_DETAIL_IS_FAVOURITE, FOLKS_PERSONA_DETAIL_LOCAL_IDS, FOLKS_PERSONA_DETAIL_NICKNAME, FOLKS_PERSONA_DETAIL_NOTES, FOLKS_PERSONA_DETAIL_PHONE_NUMBERS, FOLKS_PERSONA_DETAIL_POSTAL_ADDRESSES, FOLKS_PERSONA_DETAIL_ROLES, FOLKS_PERSONA_DETAIL_STRUCTURED_NAME, FOLKS_PERSONA_DETAIL_URLS, FOLKS_PERSONA_DETAIL_WEB_SERVICE_ADDRESSES, FOLKS_PERSONA_DETAIL_GROUPS } FolksPersonaDetail;
Definition of the available fields to be looked up with
.
folks_persona_store_detail_key()
Invalid field for use in error returns. | |
Field for "alias". | |
Field for "avatar". | |
Field for "birthday". | |
Field for "email-addresses". | |
Field for "full-name". | |
Field for "gender". | |
Field for "im-addresses". | |
Field for "is-favourite". | |
Field for "local-ids". | |
Field for "nickname". | |
Field for "notes". | |
Field for "phone-numbers". | |
Field for "postal-addresses". | |
Field for "roles". | |
Field for "structured-name". | |
Field for "urls". | |
Field for "web-service-addresses". | |
Field for "groups". |
Since 0.5.0
typedef enum { FOLKS_PERSONA_STORE_ERROR_INVALID_ARGUMENT, FOLKS_PERSONA_STORE_ERROR_CREATE_FAILED, FOLKS_PERSONA_STORE_ERROR_UNSUPPORTED_ON_USER, FOLKS_PERSONA_STORE_ERROR_STORE_OFFLINE, FOLKS_PERSONA_STORE_ERROR_READ_ONLY, FOLKS_PERSONA_STORE_ERROR_PERMISSION_DENIED, FOLKS_PERSONA_STORE_ERROR_REMOVE_FAILED, FOLKS_PERSONA_STORE_ERROR_UNSUPPORTED_ON_NON_USER } FolksPersonaStoreError;
Errors from FolksPersonaStores.
An argument to the method was invalid. | |
Creation of a FolksPersona failed. | |
Such an operation may not be performed on a FolksPersona with "is-user" set to `true`. | |
The FolksPersonaStore was offline (ie, this is a temporary failure). | |
The FolksPersonaStore doesn't support write operations. | |
The operation was denied due to not having sufficient permissions. | |
Removal of a FolksPersona failed. This is a generic error which is used if no other error code (such as, e.g., FOLKS_PERSONA_STORE_ERROR_PERMISSION_DENIED) is applicable. | |
Such an operation may only be performed on a FolksPersona with "is-user" set to `true`. |
"always-writeable-properties"
property "always-writeable-properties" GStrv : Read
The names of the properties of the FolksPersonas in this store which are always writeable.
If a property name is in this list, setting the property on a persona should result in the updated value being stored in the backend's permanent storage (unless it gets rejected due to being invalid, or a different error occurs).
This property value is guaranteed to be constant for a given persona store, but may vary between persona stores in the same backend. It's guaranteed that this will always be a subset of the value of "writeable-properties" for the personas in this persona store.
Since 0.6.2
"can-add-personas"
property"can-add-personas" FolksMaybeBool : Read
Whether this
can add FolksPersonas.
folks_persona_store_new()
Default value: FOLKS_MAYBE_BOOL_UNSET
Since 0.3.1
"can-alias-personas"
property"can-alias-personas" FolksMaybeBool : Read
Whether this
can set the alias of FolksPersonas.
folks_persona_store_new()
Default value: FOLKS_MAYBE_BOOL_UNSET
Since 0.3.1
"can-group-personas"
property"can-group-personas" FolksMaybeBool : Read
Whether this
can set the groups of FolksPersonas.
folks_persona_store_new()
Default value: FOLKS_MAYBE_BOOL_UNSET
Since 0.3.1
"can-remove-personas"
property"can-remove-personas" FolksMaybeBool : Read
Whether this
can remove FolksPersonas.
folks_persona_store_new()
Default value: FOLKS_MAYBE_BOOL_UNSET
Since 0.3.1
"display-name"
property "display-name" gchar* : Read / Write / Construct Only
The human-readable, service-specific name used to represent the PersonaStore to the user.
For example: `foo@xmpp.example.org
`.
This should be used whenever the user needs to be presented with a familiar, service-specific name. For instance, in a prompt for the user to select a specific IM account from which to initiate a chat.
This is not guaranteed to be unique even within this PersonaStore's FolksBackend.
Default value: NULL
Since 0.1.13
"id"
property "id" gchar* : Read / Write / Construct Only
The instance identifier for this PersonaStore.
Since each FolksBackend can provide multiple different PersonaStores for different accounts or servers (for example), they each need an ID which is unique within the backend.
Default value: NULL
"is-prepared"
property "is-prepared" gboolean : Read
Whether
has successfully completed for this store.
folks_persona_store_prepare()
Default value: FALSE
Since 0.3.0
"is-primary-store"
property "is-primary-store" gboolean : Read / Write
Whether this
is the primary store which is to be used for linking FolksPersonas and such.
folks_persona_store_new()
Default value: FALSE
Since 0.6.3
"is-quiescent"
property "is-quiescent" gboolean : Read
Whether the store has reached a quiescent state. This will happen at some point after
has successfully completed for the store. A store is in a quiescent state when all the FolksPersonas that it originally knows about have been loaded.
folks_persona_store_prepare()
It's guaranteed that this property's value will only ever change after "is-prepared" has changed to `true`.
Default value: FALSE
Since 0.6.2
"is-user-set-default"
property "is-user-set-default" gboolean : Read / Write
Whether this
has been marked as the default store (in its backend) by the user. I.e.: a PersonaStore for the e-d-s backend would set this to true if it represents the default address book.
folks_persona_store_new()
Default value: FALSE
Since 0.6.3
"is-writeable"
property "is-writeable" gboolean : Read / Write
Whether the PersonaStore is writeable.
Only if a PersonaStore is writeable will its FolksPersonas be updated by changes to the FolksIndividuals containing them, and those changes then be written out to the relevant backing store.
If this property is `false`, it doesn't mean that FolksPersonas in this persona store aren't writeable at all. If their properties are updated through the FolksPersona, rather than through the FolksIndividual containing that persona, changes may be propagated to the backing store.
PersonaStores must not set this property themselves; it will be set as appropriate by the FolksIndividualAggregator.
Default value: FALSE
Since 0.1.13
"personas"
property "personas" GeeMap* : Read
The FolksPersonas exposed by this PersonaStore.
Since 0.5.1
"trust-level"
property"trust-level" FolksPersonaStoreTrust : Read / Write
The trust level of the PersonaStore for linking.
Each
is assigned a trust level by the IndividualAggregator, designating whether to trust the properties of its FolksPersonas for linking to produce FolksIndividuals.folks_persona_store_new()
See also: FolksPersonaStoreTrust
Default value: FOLKS_PERSONA_STORE_TRUST_NONE
Since 0.1.13
"type-id"
property "type-id" gchar* : Read
The type of PersonaStore this is.
This is the same for all PersonaStores provided by a given FolksBackend.
This is guaranteed to always be available; even before
is called.folks_persona_store_prepare()
Default value: NULL
"personas-changed"
signalvoid user_function (FolksPersonaStore *persona_store,
GeeSet *added,
GeeSet *removed,
gchar *message,
FolksPersona *actor,
FolksGroupDetailsChangeReason reason,
gpointer user_data) : Run Last
Emitted when one or more FolksPersonas are added to or removed from the store.
This will not be emitted until after
has been called.folks_persona_store_prepare()
|
the FolksPersonaStore instance that received the signal |
|
a set of FolksPersonas which have been removed |
|
a set of FolksPersonas which have been removed |
|
a string message from the backend, if any |
|
the FolksPersona who made the change, if known |
|
the reason for the change |
|
user data set when the signal handler was connected. |
Since 0.5.1
"removed"
signalvoid user_function (FolksPersonaStore *persona_store,
gpointer user_data) : Run Last
Emitted when the backing store for this PersonaStore has been removed.
At this point, the PersonaStore and all its FolksPersonas are invalid, so any client referencing it should unreference it.
This will not be emitted until after
has been called.folks_persona_store_prepare()
|
the FolksPersonaStore instance that received the signal |
|
user data set when the signal handler was connected. |