summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-04-21 22:00:00 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-04-21 22:00:00 (GMT)
commit8eb95d316f7b6fbad0ff798abfe7f70f89e812d2 (patch)
tree4f310c7ffdb94d48fff236e63c7e6f0ed9f1dee1 /src/core
parent315146a49b5570294ca20beca720c4e3f74a86bd (diff)
Improved the way file formats are detected and loaded.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core.c8
-rw-r--r--src/core/global.c98
-rw-r--r--src/core/global.h13
3 files changed, 118 insertions, 1 deletions
diff --git a/src/core/core.c b/src/core/core.c
index 2d790ce..1b6b033 100644
--- a/src/core/core.c
+++ b/src/core/core.c
@@ -64,6 +64,8 @@ bool load_all_basic_components(void)
static bool result = false; /* Bilan à retourner */
char *cfgdir; /* Répertoire de configuration */
GWorkQueue *queue; /* Singleton pour tâches */
+ GContentExplorer *explorer; /* Explorateur de contenus */
+ GContentResolver *resolver; /* Résolveur de contenus */
/**
* On mémorise les passages réussis.
@@ -97,6 +99,12 @@ bool load_all_basic_components(void)
queue = g_work_queue_new();
set_work_queue(queue);
+ explorer = g_content_explorer_new();
+ set_current_content_explorer(explorer);
+
+ resolver = g_content_resolver_new();
+ set_current_content_resolver(resolver);
+
result &= init_segment_content_hash_table();
result &= load_hard_coded_processors_definitions();
diff --git a/src/core/global.c b/src/core/global.c
index b227a5d..decf300 100644
--- a/src/core/global.c
+++ b/src/core/global.c
@@ -31,6 +31,12 @@
/* Gestionnaire de tâches parallèles */
static GWorkQueue *_queue = NULL;
+/* Explorateur de contenus */
+static GContentExplorer *_explorer = NULL;
+
+/* Résolveur de contenus */
+static GContentResolver *_resolver = NULL;
+
/* Projet global actif */
static GStudyProject *_project = NULL;
@@ -81,6 +87,96 @@ GWorkQueue *get_work_queue(void)
/******************************************************************************
* *
+* Paramètres : explorer = éventuelle adresse du nouveau gestionnaire. *
+* *
+* Description : Définit l'adresse de l'explorateur de contenus courant. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void set_current_content_explorer(GContentExplorer *explorer)
+{
+ if (_explorer != NULL)
+ g_object_unref(G_OBJECT(_explorer));
+
+ _explorer = explorer;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : - *
+* *
+* Description : Fournit l'adresse de l'explorateur de contenus courant. *
+* *
+* Retour : Adresse de l'explorateur global ou NULL si aucun (!). *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GContentExplorer *get_current_content_explorer(void)
+{
+ assert(_explorer != NULL);
+
+ g_object_ref(G_OBJECT(_explorer));
+
+ return _explorer;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : resolver = éventuelle adresse du nouveau gestionnaire. *
+* *
+* Description : Définit l'adresse du résolveur de contenus courant. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void set_current_content_resolver(GContentResolver *resolver)
+{
+ if (_resolver != NULL)
+ g_object_unref(G_OBJECT(_resolver));
+
+ _resolver = resolver;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : - *
+* *
+* Description : Fournit l'adresse du résolveur de contenus courant. *
+* *
+* Retour : Adresse du résolveur global ou NULL si aucun (!). *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GContentResolver *get_current_content_resolver(void)
+{
+ assert(_resolver != NULL);
+
+ g_object_ref(G_OBJECT(_resolver));
+
+ return _resolver;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : project = éventuelle adresse du nouveau projet principal. *
* *
* Description : Définit l'adresse du projet courant. *
@@ -112,7 +208,7 @@ void set_current_project(GStudyProject *project)
/******************************************************************************
* *
-* Paramètres : project = éventuel adresse à renvoyer désormais. *
+* Paramètres : - *
* *
* Description : Fournit l'adresse du projet courant. *
* *
diff --git a/src/core/global.h b/src/core/global.h
index 6cf029f..5f01909 100644
--- a/src/core/global.h
+++ b/src/core/global.h
@@ -25,6 +25,7 @@
#define _CORE_GLOBAL_H
+#include "../analysis/loading.h"
#include "../analysis/project.h"
#include "../glibext/delayed.h"
@@ -36,6 +37,18 @@ void set_work_queue(GWorkQueue *);
/* Fournit le gestionnaire de traitements parallèles courant. */
GWorkQueue *get_work_queue(void);
+/* Définit l'adresse de l'explorateur de contenus courant. */
+void set_current_content_explorer(GContentExplorer *);
+
+/* Fournit l'adresse de l'explorateur de contenus courant. */
+GContentExplorer *get_current_content_explorer(void);
+
+/* Définit l'adresse du résolveur de contenus courant. */
+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 du projet courant. */
void set_current_project(GStudyProject *);