AnjutaSession

AnjutaSession — Store local user settings

Stability Level

Unstable, unless otherwise indicated

Synopsis

#include <libanjuta/anjuta-session.h>

enum                AnjutaSessionPhase;
                    AnjutaSession;
                    AnjutaSessionClass;
AnjutaSession *     anjuta_session_new                  (const gchar *session_directory);
gchar *             anjuta_session_get_session_filename (AnjutaSession *session);
const gchar *       anjuta_session_get_session_directory
                                                        (AnjutaSession *session);
void                anjuta_session_sync                 (AnjutaSession *session);
void                anjuta_session_clear                (AnjutaSession *session);
void                anjuta_session_clear_section        (AnjutaSession *session,
                                                         const gchar *section);
void                anjuta_session_set_int              (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key,
                                                         gint value);
void                anjuta_session_set_float            (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key,
                                                         gfloat value);
void                anjuta_session_set_string           (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key,
                                                         const gchar *value);
void                anjuta_session_set_string_list      (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key,
                                                         GList *value);
gint                anjuta_session_get_int              (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key);
gfloat              anjuta_session_get_float            (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key);
gchar *             anjuta_session_get_string           (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key);
GList *             anjuta_session_get_string_list      (AnjutaSession *session,
                                                         const gchar *section,
                                                         const gchar *key);
gchar *             anjuta_session_get_relative_uri_from_file
                                                        (AnjutaSession *session,
                                                         GFile *file,
                                                         const gchar *fragment);
GFile *             anjuta_session_get_file_from_relative_uri
                                                        (AnjutaSession *session,
                                                         const gchar *uri,
                                                         const gchar **fragment);
                    AnjutaSessionPriv;

Object Hierarchy

  GObject
   +----AnjutaSession

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.

Details

enum AnjutaSessionPhase

typedef enum {
	ANJUTA_SESSION_PHASE_START,
	ANJUTA_SESSION_PHASE_FIRST,
	ANJUTA_SESSION_PHASE_NORMAL,
	ANJUTA_SESSION_PHASE_LAST,
	ANJUTA_SESSION_PHASE_END,
} AnjutaSessionPhase;

ANJUTA_SESSION_PHASE_START

ANJUTA_SESSION_PHASE_FIRST

ANJUTA_SESSION_PHASE_NORMAL

ANJUTA_SESSION_PHASE_LAST

ANJUTA_SESSION_PHASE_END


AnjutaSession

typedef struct _AnjutaSession AnjutaSession;


AnjutaSessionClass

typedef struct {
	GObjectClass parent_class;
	/* Add Signal Functions Here */
} AnjutaSessionClass;


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.

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.

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.

session :

an AnjutaSession object

Returns :

session directory

anjuta_session_sync ()

void                anjuta_session_sync                 (AnjutaSession *session);

Synchronizes session object with session file

session :

an AnjutaSession object

anjuta_session_clear ()

void                anjuta_session_clear                (AnjutaSession *session);

Clears the session.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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]

AnjutaSessionPriv

typedef struct _AnjutaSessionPriv AnjutaSessionPriv;