Greenbone Vulnerability Management Libraries  22.8.0
settings.h File Reference

Protos and data structures for configuration file management. More...

#include <glib.h>
Include dependency graph for settings.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  settings_t
 Struct holding options for settings taken from a key-value config file. More...
 
struct  settings_iterator_t
 Struct holding options to iterate over a GKeyFile. More...
 

Functions

void settings_cleanup (settings_t *)
 Cleanup a settings structure. More...
 
int init_settings_iterator_from_file (settings_iterator_t *, const gchar *, const gchar *)
 Initialise a settings iterator from a file. More...
 
void cleanup_settings_iterator (settings_iterator_t *)
 Cleanup a settings iterator. More...
 
int settings_iterator_next (settings_iterator_t *)
 Increment an iterator. More...
 
const gchar * settings_iterator_name (settings_iterator_t *)
 Get the name from a settings iterator. More...
 
const gchar * settings_iterator_value (settings_iterator_t *)
 Get the value from a settings iterator. More...
 

Detailed Description

Protos and data structures for configuration file management.

This file contains the protos for settings.c

Definition in file settings.h.

Function Documentation

◆ cleanup_settings_iterator()

void cleanup_settings_iterator ( settings_iterator_t iterator)

Cleanup a settings iterator.

Parameters
[in]iteratorSettings iterator.

Definition at line 136 of file settings.c.

137 {
138  g_strfreev (iterator->keys);
139  settings_cleanup (&iterator->settings);
140 }

References settings_iterator_t::keys, settings_iterator_t::settings, and settings_cleanup().

Referenced by prefs_config().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_settings_iterator_from_file()

int init_settings_iterator_from_file ( settings_iterator_t iterator,
const gchar *  filename,
const gchar *  group 
)

Initialise a settings iterator from a file.

Parameters
[in]iteratorSettings iterator.
[in]filenameComplete name of the configuration file.
[in]groupName of the group in the file.
Returns
0 success, -1 error.

Definition at line 98 of file settings.c.

100 {
101  int ret;
102  gsize keys_length;
103  GError *error = NULL;
104 
105  ret = settings_init_from_file (&iterator->settings, filename, group);
106  if (ret)
107  return ret;
108 
109  iterator->keys = g_key_file_get_keys (iterator->settings.key_file, group,
110  &keys_length, &error);
111 
112  if (iterator->keys == NULL)
113  {
114  if (error)
115  {
116  g_warning ("Failed to retrieve keys of group %s from %s: %s", group,
117  filename, error->message);
118  g_error_free (error);
119  }
120  g_key_file_free (iterator->settings.key_file);
121  return -1;
122  }
123 
124  iterator->current_key = iterator->keys - 1;
125  iterator->last_key = iterator->keys + keys_length - 1;
126 
127  return 0;
128 }

References settings_iterator_t::current_key, settings_t::key_file, settings_iterator_t::keys, settings_iterator_t::last_key, settings_iterator_t::settings, and settings_init_from_file().

Referenced by prefs_config().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ settings_cleanup()

void settings_cleanup ( settings_t settings)

Cleanup a settings structure.

Parameters
[in]settingsSettings structure.

Definition at line 81 of file settings.c.

82 {
83  g_free (settings->group_name);
84  g_free (settings->file_name);
85  g_key_file_free (settings->key_file);
86 }

References settings_t::file_name, settings_t::group_name, and settings_t::key_file.

Referenced by cleanup_settings_iterator().

Here is the caller graph for this function:

◆ settings_iterator_name()

const gchar* settings_iterator_name ( settings_iterator_t iterator)

Get the name from a settings iterator.

Parameters
[in]iteratorSettings iterator.
Returns
Name of current key.

Definition at line 166 of file settings.c.

167 {
168  return *iterator->current_key;
169 }

References settings_iterator_t::current_key.

Referenced by prefs_config().

Here is the caller graph for this function:

◆ settings_iterator_next()

int settings_iterator_next ( settings_iterator_t iterator)

Increment an iterator.

Parameters
[in]iteratorSettings iterator.
Returns
TRUE if there was a next item, else FALSE.

Definition at line 150 of file settings.c.

151 {
152  if (iterator->current_key == iterator->last_key)
153  return FALSE;
154  iterator->current_key++;
155  return TRUE;
156 }

References settings_iterator_t::current_key, and settings_iterator_t::last_key.

Referenced by prefs_config().

Here is the caller graph for this function:

◆ settings_iterator_value()

const gchar* settings_iterator_value ( settings_iterator_t iterator)

Get the value from a settings iterator.

Parameters
[in]iteratorSettings iterator.
Returns
Value of current key.

Definition at line 179 of file settings.c.

180 {
181  return g_key_file_get_value (iterator->settings.key_file,
182  iterator->settings.group_name,
183  *iterator->current_key, NULL);
184 }

References settings_iterator_t::current_key, settings_t::group_name, settings_t::key_file, and settings_iterator_t::settings.

Referenced by prefs_config().

Here is the caller graph for this function:
settings_iterator_t::current_key
gchar ** current_key
Definition: settings.h:39
settings_iterator_t::last_key
gchar ** last_key
Definition: settings.h:40
settings_cleanup
void settings_cleanup(settings_t *settings)
Cleanup a settings structure.
Definition: settings.c:81
settings_t::group_name
gchar * group_name
Definition: settings.h:25
settings_iterator_t::settings
settings_t settings
Definition: settings.h:38
settings_iterator_t::keys
gchar ** keys
Definition: settings.h:37
settings_t::key_file
GKeyFile * key_file
Definition: settings.h:26
settings_t::file_name
gchar * file_name
Definition: settings.h:24
settings_init_from_file
static int settings_init_from_file(settings_t *settings, const gchar *filename, const gchar *group)
Initialise a settings struct from a file.
Definition: settings.c:32