|
My Project
|
Gestion des registres (outils permettant de stocker des paramètres) Plus de détails...


Aller au code source de ce fichier.
Définitions de type | |
| typedef struct _registre | registre |
| Le type d'un registre. | |
| typedef struct _parametre | parametre |
| Définition d'un parametre dans un registre. | |
| typedef void(* | registreMiseAJour) (void *, char *) |
| La fonction de mise-à-jour d'un registre. | |
Fonctions | |
| registre * | registreCreer (char *nom) |
| Création d'un registre vide. | |
| void | registreAffecterParametre (registre *reg, char *valeur, void *prive, registreMiseAJour miseAJour,...) |
| Affecter un paramètre dans un registre. | |
| void | registreSystemeInitialiser (void) |
| Initialisation du registre système. | |
| void | registreSystemeAffecterParametre (char *valeur, void *prive, registreMiseAJour miseAJour,...) |
| Ajouter un paramètre au registre système de ManuX. | |
| void | registreSystemeAjouterC (char *chaine) |
| Ajouter dans le registre système un paramètre décrit dans une chaîne de caractères. | |
| void | registreSystemeAfficher (void) |
| Affichage du registre de ManuX. | |
Gestion des registres (outils permettant de stocker des paramètres)
Attention en cas de mise-à-jour : faire suivre la doc !!!
Un registre est une structure arborescente contenant des paramètres. Un registre doit d'abord être créé puis on peut y insérer des paramètres avec la fonction registreAffecterParametre(). Chaque paramètre est stoqué comme une chaîne de caractères.
Il existe plusieurs façons de l'utiliser car il existe des des besoins différents :
. Le principe de base est que chaque sous-sytème crée les paramètres dans un registre, avec pour chacun une fonction de mise-à-jour (et un pointeur associé si c'est utile) et une valeur par défaut s'il le souhaite
. Il peut être également utile de renseigner un registre avec des valeurs de paramètres avant que ceux-ci aient été créés et insérés dans le registre. Des paramètres peuvent par exemple être chargés au démarage du système dont la valeur pourra être utilisée lors du démarrage des sous-systèmes correspondants. Lors de leur première insertion dans le registre, la fonction de mise-à-jour ne peut donc pas être invoquée.
La fonction d'affectation d'un paramètre dans un registre a donc la signature suivante
où
| base | : le registre dans lequel est le paramètre |
| valeur | : la valeur du paramètre sous forme de chaîne (ou NULL) |
| prive | : un pointeur sur une zone privée (ou NULL) |
| miseAJour | : la fonction de mise à jour (ou NULL) |
| listargs | : le nom sous forme de liste de chaînes |
Le principe est le suivant
si miseAJour == NULL alors la valeur est affectée au paramètre si la fonction de mise-à-jour existe alors elle est invoquée (avec cette nouvelle valeur) finsi sinon si le paramètre n'avait pas de valeur définie, alors On lui affecte celle passée en paramètre fin si la fonction de mise-à-jour est affectée la fonction de mise-à-jour est invoquée finsi
Dit autrement, si une fonction de mise-à-jour est passée en paramètre, alors on ne se préoccupe pas de la valeur passée en paramètre, sinon on affecte la valeur (même nulle). Dans tous les cas, on invoque la màj si elle existe.
(C) E. Chaput 2024-2025
Définition dans le fichier registre.h.
| typedef struct _parametre parametre |
Définition d'un parametre dans un registre.
Définition à la ligne 84 du fichier registre.h.
Le type d'un registre.
Définition à la ligne 79 du fichier registre.h.
La fonction de mise-à-jour d'un registre.
Définition à la ligne 89 du fichier registre.h.
| void registreAffecterParametre | ( | registre * | reg, |
| char * | valeur, | ||
| void * | prive, | ||
| registreMiseAJour | miseAJour, | ||
| ... | |||
| ) |
Affecter un paramètre dans un registre.
Voir la doc générale du registre pour une description de l'algorithme
Affecter un paramètre dans un registre.
Définition à la ligne 449 du fichier registre.c.
| registre * registreCreer | ( | char * | nom | ) |
Création d'un registre vide.
Définition à la ligne 203 du fichier registre.c.
| void registreSystemeAffecterParametre | ( | char * | valeur, |
| void * | prive, | ||
| registreMiseAJour | miseAJour, | ||
| ... | |||
| ) |
Ajouter un paramètre au registre système de ManuX.
Ajouter un paramètre au registre système de ManuX.
Exemple registreSystemeAjouterParametre("192.168.10.2/24", &netif, netIpAddr, "net", "ip", "addr", NULL);
Définition à la ligne 565 du fichier registre.c.
Affichage du registre de ManuX.
Affichage du registre de ManuX.
Définition à la ligne 580 du fichier registre.c.
| void registreSystemeAjouterC | ( | char * | chaine | ) |
Ajouter dans le registre système un paramètre décrit dans une chaîne de caractères.
La chaîne doit être sous la forme "a.b.c=v"
Ajouter dans le registre système un paramètre décrit dans une chaîne de caractères.
La chaîne doit être sous la forme "a.b.c=v" Attention, elle va être modifiée !
Définition à la ligne 552 du fichier registre.c.
Initialisation du registre système.
Initialisation du registre système.
Définition à la ligne 536 du fichier registre.c.