diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-02-08 16:15:04 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-02-08 16:15:04 (GMT) |
commit | 511ac8975be6008d53e37bede9934a11e597551c (patch) | |
tree | 89280cb2034de00db7db5b7bee3b044253d72cef /src/analysis/loading.h | |
parent | 7778a0c082c4969ed6184883b2d96d8a851def99 (diff) |
Gathered all the binary loading process into an uniq place.
Diffstat (limited to 'src/analysis/loading.h')
-rw-r--r-- | src/analysis/loading.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/src/analysis/loading.h b/src/analysis/loading.h new file mode 100644 index 0000000..bfc785c --- /dev/null +++ b/src/analysis/loading.h @@ -0,0 +1,102 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * loading.h - prototypes pour la reconnaissance de contenus binaires + * + * Copyright (C) 2017 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see <http://www.gnu.org/licenses/>. + */ + + +#ifndef _ANALYSIS_LOADING_H +#define _ANALYSIS_LOADING_H + + +#include <glib-object.h> + + +#include "project.h" + + + +/* ----------------------- AMORCE POUR CHARGEMENT DE CONTENUS ----------------------- */ + + +#define G_TYPE_DELAYED_STUDY g_delayed_study_get_type() +#define G_DELAYED_STUDY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_delayed_study_get_type(), GDelayedStudy)) +#define G_IS_DELAYED_STUDY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_delayed_study_get_type())) +#define G_DELAYED_STUDY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_DELAYED_STUDY, GDelayedStudyClass)) +#define G_IS_DELAYED_STUDY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_DELAYED_STUDY)) +#define G_DELAYED_STUDY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_DELAYED_STUDY, GDelayedStudyClass)) + + +/* Ensembles binaires à désassembler (instance) */ +typedef struct _GDelayedStudy GDelayedStudy; + +/* Ensembles binaires à désassembler (classe) */ +typedef struct _GDelayedStudyClass GDelayedStudyClass; + + +/* Indique le type défini pour les tâches de préparations d'étude. */ +GType g_delayed_study_get_type(void); + +/* Crée une tâche d'intégration de contenu binaire. */ +GDelayedStudy *g_delayed_study_new(GStudyProject *, GBinContent *, ProjectContentState); + +/* Limite l'étude et l'intégration d'un contenu binaire. */ +void g_delayed_study_preload_only(GDelayedStudy *); + +/* Programme l'étude et l'intégration d'un contenu binaire. */ +void qck_study_new_content(GBinContent *, ProjectContentState); + +/* Programme l'étude et l'intégration d'un contenu binaire. */ +void study_new_content(GDelayedStudy *); + + + +/* ----------------------- CHARGEMENT DE BINAIRE NON BLOQUANT ----------------------- */ + + +#define G_TYPE_BINARY_LOADER g_binary_loader_get_type() +#define G_BINARY_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_BINARY_LOADER, GBinaryLoader)) +#define G_IS_BINARY_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_BINARY_LOADER)) +#define G_BINARY_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_BINARY_LOADER, GBinaryLoaderClass)) +#define G_IS_BINARY_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_BINARY_LOADER)) +#define G_BINARY_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_BINARY_LOADER, GBinaryLoaderClass)) + + +/* Chargement non bloquant d'un binaire (instance) */ +typedef struct _GBinaryLoader GBinaryLoader; + +/* Chargement non bloquant d'un binaire (classe) */ +typedef struct _GBinaryLoaderClass GBinaryLoaderClass; + + +/* Indique le type défini pour le chargement non bloquant d'un binaire. */ +GType g_binary_loader_get_type(void); + +/* Prépare le chargement non bloqué d'un contenu binaire. */ +GBinaryLoader *g_binary_loader_new(GBinContent *, GStudyProject *); + +/* Prépare le chargement non bloqué d'un contenu XML. */ +GBinaryLoader *g_binary_loader_new_from_xml(const char *, const char *, GStudyProject *); + +/* Retourne l'instance du binaire chargé en cas de succès. */ +GLoadedBinary *g_binary_loader_get_result(const GBinaryLoader *); + + + +#endif /* _ANALYSIS_LOADING_H */ |