## AnjutaSession AnjutaSession — Store local user settings |

## Stability Level

Unstable, unless otherwise indicated

## Functions

AnjutaSession * | anjuta_session_new ()
gchar * | anjuta_session_get_session_filename ()
const gchar * | anjuta_session_get_session_directory ()
void | anjuta_session_sync ()
void | anjuta_session_clear ()
void | anjuta_session_clear_section ()
void | anjuta_session_set_int ()
void | anjuta_session_set_float ()
void | anjuta_session_set_string ()
void | anjuta_session_set_string_list ()
gint | anjuta_session_get_int ()
gfloat | anjuta_session_get_float ()
gchar * | anjuta_session_get_string ()
GList * | anjuta_session_get_string_list ()
gchar * | anjuta_session_get_relative_uri_from_file ()
GFile * | anjuta_session_get_file_from_relative_uri ()

## Types and Values

enum | AnjutaSessionPhase
| AnjutaSessionPriv

## Object Hierarchy

        GObject
        ╰── AnjutaSession

## Includes

    #include <libanjuta/anjuta-session.h>

## Description

A anjuta session contains local user settings, by example the list of files open in one project. These settings are stored in a .ini-like config file in a directory named session. Other libraries can store their own settings in another format in the same directory.

## Functions

### anjuta_session_new ()

    AnjutaSession *
    anjuta_session_new (const gchar *session_directory);

Created a new session object. `session_directory` is the directory where session information will be stored or loaded in case of existing session.

#### Parameters

session_directory | Directory where session is loaded from/saved to. |

#### Returns

an AnjutaSession Object

### anjuta_session_get_session_filename ()

    gchar *
    anjuta_session_get_session_filename (AnjutaSession *session);

Gets the session filename corresponding to this session object.

#### Parameters

session | an AnjutaSession object |

#### Returns

session (absolute) filename

### anjuta_session_get_session_directory ()

    const gchar *
    anjuta_session_get_session_directory (AnjutaSession *session);

Returns the directory corresponding to this session object.

#### Parameters

session | an AnjutaSession object |

#### Returns

session directory

### anjuta_session_sync ()

    void
    anjuta_session_sync (AnjutaSession *session);

Synchronizes session object with session file

#### Parameters

session | an AnjutaSession object |

### anjuta_session_clear ()

    void
    anjuta_session_clear (AnjutaSession *session);

Clears the session.

#### Parameters

session | an AnjutaSession object |

### anjuta_session_clear_section ()

    void
    anjuta_session_clear_section (AnjutaSession *session,
                                  const gchar *section);

Clears the given section in session object.

#### Parameters

session | an AnjutaSession object. |
section | Section to clear. |

### anjuta_session_set_int ()

    void
    anjuta_session_set_int (AnjutaSession *session,
                            const gchar *section,
                            const gchar *key,
                            gint value);

Set an integer `value` to `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |
value | Key value |

### anjuta_session_set_float ()

    void
    anjuta_session_set_float (AnjutaSession *session,
                              const gchar *section,
                              const gchar *key,
                              gfloat value);

Set a float `value` to `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |
value | Key value |

### anjuta_session_set_string ()

    void
    anjuta_session_set_string (AnjutaSession *session,
                               const gchar *section,
                               const gchar *key,
                               const gchar *value);

Set a string `value` to `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |
value | Key value |

### anjuta_session_set_string_list ()

    void
    anjuta_session_set_string_list (AnjutaSession *session,
                                    const gchar *section,
                                    const gchar *key,
                                    GList *value);

Set a list of strings `value` to `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |
value | Key value |

### anjuta_session_get_int ()

    gint
    anjuta_session_get_int (AnjutaSession *session,
                            const gchar *section,
                            const gchar *key);

Get an integer `value` of `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |

#### Returns

Key value

### anjuta_session_get_float ()

    gfloat
    anjuta_session_get_float (AnjutaSession *session,
                              const gchar *section,
                              const gchar *key);

Get a float `value` of `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |

#### Returns

Key value

### anjuta_session_get_string ()

    gchar *
    anjuta_session_get_string (AnjutaSession *session,
                               const gchar *section,
                               const gchar *key);

Get a string `value` of `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |

#### Returns

Key value

### anjuta_session_get_string_list ()

    GList *
    anjuta_session_get_string_list (AnjutaSession *session,
                                    const gchar *section,
                                    const gchar *key);

Get a list of strings `value` of `key` in given `section` .

#### Parameters

session | an AnjutaSession object |
section | Section. |
key | Key name. |

#### Returns

Key value

### anjuta_session_get_relative_uri_from_file ()

    gchar *
    anjuta_session_get_relative_uri_from_file
                                   (AnjutaSession *session,
                                    GFile *file,
                                    const gchar *fragment);

Return an URI relative to the session directory file with an optional fragment. It is useful to keep only relative file paths in a session file to be able to copy the whole project without breaking references.

#### Parameters

session | an AnjutaSession object |
file | a GFile |
fragment | an optional fragment |

#### Returns

A string that has to be freed with `g_free()`.

[transfer full]

### anjuta_session_get_file_from_relative_uri ()

    GFile *
    anjuta_session_get_file_from_relative_uri
                                   (AnjutaSession *session,
                                    const gchar *uri,
                                    const gchar **fragment);

Return a GFile corresponding to the URI and and optional fragment, normally read from a session key. The path is expected to be relative to the session directory but it works with an absolute URI, in this case it returns the same file than g_file_new_for_uri. It is useful to keep only relative file paths in a session file to be able to copy the whole project without breaking references.

#### Parameters

session | an AnjutaSession object |
uri | a relative URI from a key |
fragment | fragment part of the URI if existing, can be `NULL`. | [allow-none]

#### Returns

A new GFile that has to be freed with `g_object_unref()`.

[transfer full]

## Types and Values

### enum AnjutaSessionPhase

#### Members

ANJUTA_SESSION_PHASE_START |  |
ANJUTA_SESSION_PHASE_FIRST |  |
ANJUTA_SESSION_PHASE_NORMAL |  |
ANJUTA_SESSION_PHASE_LAST |  |
ANJUTA_SESSION_PHASE_END |  |

### AnjutaSessionPriv

    typedef struct _AnjutaSessionPriv AnjutaSessionPriv;