summaryrefslogtreecommitdiff
path: root/src/core/global.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/global.c')
-rw-r--r--src/core/global.c108
1 files changed, 69 insertions, 39 deletions
diff --git a/src/core/global.c b/src/core/global.c
index c99d711..83d8f4a 100644
--- a/src/core/global.c
+++ b/src/core/global.c
@@ -2,7 +2,7 @@
/* Chrysalide - Outil d'analyse de fichiers binaires
* global.c - conservation et accès aux variables globales
*
- * Copyright (C) 2017-2019 Cyrille Bagard
+ * Copyright (C) 2017-2024 Cyrille Bagard
*
* This file is part of Chrysalide.
*
@@ -24,38 +24,19 @@
#include "global.h"
-#include <assert.h>
-
+#include "../glibext/helpers.h"
-/* Mode de fonctionnement */
-static bool _batch_mode = false;
/* 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;
-
-/* Espace de noms racine pour ROST */
-static GScanNamespace *_rost_root_ns = NULL;
-
-/* Projet global actif */
-static GStudyProject *_project = NULL;
-
-/* Avertisseur de changement de projet principal */
-static current_project_change_cb _project_notify = NULL;
-
-
/******************************************************************************
* *
-* Paramètres : - *
+* Paramètres : queue = nouveau gestionnaire à mémoriser ou NULL. *
* *
-* Description : Note un mode d'exécution sans interface. *
+* Description : Définit le gestionnaire de traitements parallèles courant. *
* *
* Retour : - *
* *
@@ -63,9 +44,12 @@ static current_project_change_cb _project_notify = NULL;
* *
******************************************************************************/
-void set_batch_mode(void)
+void set_work_queue(/* __steal */GWorkQueue *queue)
{
- _batch_mode = true;
+ if (_queue != NULL)
+ unref_object(_queue);
+
+ _queue = queue;
}
@@ -74,26 +58,70 @@ void set_batch_mode(void)
* *
* Paramètres : - *
* *
-* Description : Indique le mode d'exécution courant du programme. *
+* Description : Fournit le gestionnaire de traitements parallèles courant. *
* *
-* Retour : true si le fonctionnement est sans interface. *
+* Retour : Gestionnaire de traitements parallèles courant. *
* *
* Remarques : - *
* *
******************************************************************************/
-bool is_batch_mode(void)
+GWorkQueue *get_work_queue(void)
{
- return _batch_mode;
+ ref_object(_queue);
+
+ return _queue;
}
+
+
+
+
+
+
+
+
+
+
+
+
+
+#if 0
+
+#include <assert.h>
+
+
+
+/* Mode de fonctionnement */
+static bool _batch_mode = false;
+
+/* 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;
+
+/* Espace de noms racine pour ROST */
+static GScanNamespace *_rost_root_ns = NULL;
+
+/* Projet global actif */
+static GStudyProject *_project = NULL;
+
+/* Avertisseur de changement de projet principal */
+static current_project_change_cb _project_notify = NULL;
+
+
+
/******************************************************************************
* *
-* Paramètres : queue = nouveau gestionnaire à mémoriser ou NULL. *
+* Paramètres : - *
* *
-* Description : Définit le gestionnaire de traitements parallèles courant. *
+* Description : Note un mode d'exécution sans interface. *
* *
* Retour : - *
* *
@@ -101,11 +129,9 @@ bool is_batch_mode(void)
* *
******************************************************************************/
-void set_work_queue(GWorkQueue *queue)
+void set_batch_mode(void)
{
- assert(_queue == NULL);
-
- _queue = queue;
+ _batch_mode = true;
}
@@ -114,21 +140,23 @@ void set_work_queue(GWorkQueue *queue)
* *
* Paramètres : - *
* *
-* Description : Fournit le gestionnaire de traitements parallèles courant. *
+* Description : Indique le mode d'exécution courant du programme. *
* *
-* Retour : Gestionnaire de traitements parallèles courant. *
+* Retour : true si le fonctionnement est sans interface. *
* *
* Remarques : - *
* *
******************************************************************************/
-GWorkQueue *get_work_queue(void)
+bool is_batch_mode(void)
{
- return _queue;
+ return _batch_mode;
}
+
+
/******************************************************************************
* *
* Paramètres : explorer = éventuelle adresse du nouveau gestionnaire. *
@@ -343,3 +371,5 @@ void register_project_change_notification(current_project_change_cb notify)
_project_notify = notify;
}
+
+#endif