diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/core.c | 9 | ||||
-rw-r--r-- | src/core/global.c | 51 | ||||
-rw-r--r-- | src/core/global.h | 7 |
3 files changed, 67 insertions, 0 deletions
diff --git a/src/core/core.c b/src/core/core.c index 62f6821..01ebbe1 100644 --- a/src/core/core.c +++ b/src/core/core.c @@ -40,6 +40,7 @@ #include "params.h" #include "processors.h" #include "queue.h" +#include "../analysis/scan/core.h" #include "../common/io.h" #include "../common/xdg.h" #include "../glibext/linesegment.h" @@ -65,6 +66,7 @@ bool load_all_core_components(bool cs) char *cfgdir; /* Répertoire de configuration */ GContentExplorer *explorer; /* Explorateur de contenus */ GContentResolver *resolver; /* Résolveur de contenus */ + GScanNamespace *root_ns; /* Espace de noms ROST racine */ /** * On mémorise les passages réussis. @@ -103,6 +105,11 @@ bool load_all_core_components(bool cs) resolver = g_content_resolver_new(); set_current_content_resolver(resolver); + root_ns = g_scan_namespace_new(); + set_rost_root_namespace(root_ns); + + if (result) result = populate_main_scan_namespace(root_ns); + if (result) result = init_segment_content_hash_table(); register_arch_gtypes(); @@ -143,6 +150,8 @@ void unload_all_core_components(bool cs) unload_processors_definitions(); + set_rost_root_namespace(NULL); + set_current_content_resolver(NULL); set_current_content_explorer(NULL); diff --git a/src/core/global.c b/src/core/global.c index 4ebb9e0..c99d711 100644 --- a/src/core/global.c +++ b/src/core/global.c @@ -40,6 +40,9 @@ static GContentExplorer *_explorer = NULL; /* Résolveur de contenus */ static GContentResolver *_resolver = NULL; +/* Espace de noms racine pour ROST */ +static GScanNamespace *_rost_root_ns = NULL; + /* Projet global actif */ static GStudyProject *_project = NULL; @@ -224,6 +227,54 @@ GContentResolver *get_current_content_resolver(void) /****************************************************************************** * * +* Paramètres : ns = espace de noms racine de ROST. * +* * +* Description : Définit l'adresse de l'espace de noms principal pour ROST. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void set_rost_root_namespace(GScanNamespace *ns) +{ + if (_rost_root_ns != NULL) + g_object_unref(G_OBJECT(_rost_root_ns)); + + _rost_root_ns = ns; + + if (ns != NULL) + g_object_ref_sink(G_OBJECT(ns)); + +} + + +/****************************************************************************** +* * +* Paramètres : - * +* * +* Description : Fournit l'adresse de l'espace de noms principal pour ROST. * +* * +* Retour : Espace de noms racine de ROST ou NULL si aucun (!). * +* * +* Remarques : - * +* * +******************************************************************************/ + +GScanNamespace *get_rost_root_namespace(void) +{ + assert(_rost_root_ns != NULL); + + g_object_ref(G_OBJECT(_rost_root_ns)); + + return _rost_root_ns; + +} + + +/****************************************************************************** +* * * Paramètres : project = éventuelle adresse du nouveau projet principal. * * * * Description : Définit l'adresse du projet courant. * diff --git a/src/core/global.h b/src/core/global.h index 088a7c9..0a9172b 100644 --- a/src/core/global.h +++ b/src/core/global.h @@ -30,6 +30,7 @@ #include "../analysis/loading.h" #include "../analysis/project.h" +#include "../analysis/scan/space.h" #include "../glibext/delayed.h" @@ -58,6 +59,12 @@ void set_current_content_resolver(GContentResolver *); /* Fournit l'adresse du résolveur de contenus courant. */ GContentResolver *get_current_content_resolver(void); +/* Définit l'adresse de l'espace de noms principal pour ROST. */ +void set_rost_root_namespace(GScanNamespace *); + +/* Fournit l'adresse de l'espace de noms principal pour ROST. */ +GScanNamespace *get_rost_root_namespace(void); + /* Définit l'adresse du projet courant. */ void set_current_project(GStudyProject *); |