## ShellContactSystem ShellContactSystem |

## Synopsis

    struct              ShellContactSystem;
    struct              ShellContactSystemClass;
    GeeMap *            shell_contact_system_get_all        (ShellContactSystem *self);
    ShellContactSystem * shell_contact_system_get_default   (void);
    char *              shell_contact_system_get_email_for_display
                                                            (ShellContactSystem *self,
                                                             FolksIndividual *individual);
    FolksIndividual *   shell_contact_system_get_individual (ShellContactSystem *self,
                                                             gchar *id);
    GSList *            shell_contact_system_initial_search (ShellContactSystem *shell,
                                                             GSList *terms);
    GSList *            shell_contact_system_subsearch      (ShellContactSystem *shell,
                                                             GSList *previous_results,
                                                             GSList *terms);

## Object Hierarchy

      GObject
       +----ShellContactSystem

## Description

## Details

### struct ShellContactSystem

    struct ShellContactSystem;

### struct ShellContactSystemClass

    struct ShellContactSystemClass {
      GObjectClass parent_class;
    };

### shell_contact_system_get_all ()

    GeeMap *            shell_contact_system_get_all        (ShellContactSystem *self);

`self` : | A ShellContactSystem
Returns : | All individuals. [transfer none]

### shell_contact_system_get_default ()

    ShellContactSystem * shell_contact_system_get_default   (void);

Returns : | The global ShellContactSystem singleton. [transfer none]

### shell_contact_system_get_email_for_display ()

    char *              shell_contact_system_get_email_for_display
                                                            (ShellContactSystem *self,
                                                             FolksIndividual *individual);

Get an email address (either from IM addresses or email), which can be used to represent `individual`.

Return: (transfer full): a newly allocated string or `NULL` if no address was found

`self` : | A ShellContactSystem `individual` A FolksIndividual

### shell_contact_system_get_individual ()

    FolksIndividual *   shell_contact_system_get_individual (ShellContactSystem *self,
                                                             gchar *id);

`self` : | A ShellContactSystem
`id` : | A gchar with the ID of the FolksIndividual to be returned.
Returns : | A FolksIndividual or NULL if `id` could not be found. [transfer full]

### shell_contact_system_initial_search ()

    GSList *            shell_contact_system_initial_search (ShellContactSystem *shell,
                                                             GSList *terms);

Search through contacts for the given search terms.

`shell` : | A ShellContactSystem
`terms` : | List of terms, logical AND. [element-type utf8]
Returns : | List of contact identifiers. [transfer container][element-type utf8]

### shell_contact_system_subsearch ()

    GSList *            shell_contact_system_subsearch      (ShellContactSystem *shell,
                                                             GSList *previous_results,
                                                             GSList *terms);

Search through a previous result set; for more information see js/ui/search.js.

`shell` : | A ShellContactSystem
`previous_results` : | List of previous results. [element-type utf8]
`terms` : | List of terms, logical AND. [element-type utf8]
Returns : | List of contact identifiers. [transfer container][element-type utf8]