## FolksPersona FolksPersona — Represents a "shard" of a person from a single source (a single FolksBackend), such as an XMPP contact from Telepathy or a vCard contact from evolution-data-server. |

## Functions

void | (*FolksPersonaLinkablePropertyCallback) ()

## Types and Values

#define | FOLKS_TYPE_PERSONA
struct | FolksPersona
struct | FolksPersonaClass
enum | FolksPropertyError

## Description

All the personas belonging to one physical person are aggregated to form a single FolksIndividual representing that person.

Properties of a persona are provided by implementing "details" interfaces, such as FolksNameDetails or FolksEmailDetails. They must be accessed through these interfaces. Different backends' subclasses of FolksPersona may implement different sets of interfaces. The set of interfaces implemented by a given persona is guaranteed not to change over the lifetime of that persona.

## Functions

### FolksPersonaLinkablePropertyCallback ()

    void
    (*FolksPersonaLinkablePropertyCallback)
                                   (const gchar *link,
                                    gpointer user_data);

Callback into the aggregator to manipulate a link mapping.

This is a callback provided by the FolksIndividualAggregator whenever a ``folks_persona_linkable_property_to_links()`` method is called, which should be called by the `linkable_property_to_links` implementation for each linkable-property-to-individual mapping it wants to add or remove in the aggregator.

#### Parameters

link | . the mapping string to be added to the FolksIndividualAggregator . | [in]
user_data | data to pass to the delegate function. | [closure]

Since: 0.1.13

## Types and Values

### FOLKS_TYPE_PERSONA

    #define FOLKS_TYPE_PERSONA (folks_persona_get_type ())

The type for FolksPersona.

### struct FolksPersona

    struct FolksPersona {
    	GObject parent_instance;
    	FolksPersonaPrivate * priv;
    };

Represents a "shard" of a person from a single source (a single FolksBackend), such as an XMPP contact from Telepathy or a vCard contact from evolution-data-server.

All the personas belonging to one physical person are aggregated to form a single FolksIndividual representing that person.

Properties of a persona are provided by implementing "details" interfaces, such as FolksNameDetails or FolksEmailDetails. They must be accessed through these interfaces. Different backends' subclasses of FolksPersona may implement different sets of interfaces. The set of interfaces implemented by a given persona is guaranteed not to change over the lifetime of that persona.

### struct FolksPersonaClass

    struct FolksPersonaClass {
    	GObjectClass parent_class;
    	void (*linkable_property_to_links) (FolksPersona* self, const gchar* prop_name, FolksPersonaLinkablePropertyCallback callback, gpointer callback_target);
    	gchar** (*get_linkable_properties) (FolksPersona* self, gint* result_length1);
    	gchar** (*get_writeable_properties) (FolksPersona* self, gint* result_length1);
    };

The class structure for `FOLKS_TYPE_PERSONA`. All the fields in this structure are private and should never be accessed directly.

#### Members

`linkable_property_to_links` () | virtual method called by ``folks_persona_linkable_property_to_links()`` |
`get_linkable_properties` () | getter method for the abstract property "linkable-properties" |
`get_writeable_properties` () | getter method for the abstract property "writeable-properties" |

### enum FolksPropertyError

Errors which can be thrown when asynchronously setting a property of a FolksPersona using a setter method defined on an interface such as FolksAliasDetails.

#### Members

FOLKS_PROPERTY_ERROR_NOT_WRITEABLE | Property is not writeable for this particular object. |
FOLKS_PROPERTY_ERROR_INVALID_VALUE | Value was invalid for the property. |
FOLKS_PROPERTY_ERROR_UNKNOWN_ERROR | Unknown error when setting the property. |
FOLKS_PROPERTY_ERROR_UNAVAILABLE | The backing store is offline or otherwise unavailable. This is a temporary error which should be retifiable by going online or ensuring the backing store is logged in. |

Since: 0.6.2