summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2023-01-30 06:59:35 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2023-01-30 06:59:35 (GMT)
commitdb3b204dd7a71b2f74a4e69b2159a96e3ab66614 (patch)
tree34174311b7ac504f03a10a889ada7f28db7a06c0 /src/core
parent34ee1bfca78e8423cfa29329fdc756569d6b1960 (diff)
Save an initial version of rost.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core.c9
-rw-r--r--src/core/global.c51
-rw-r--r--src/core/global.h7
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 *);