diff options
Diffstat (limited to 'src/core/global.c')
-rw-r--r-- | src/core/global.c | 108 |
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 |