From 219f85716b79dc81dc5c8b28285c9a91d1eb76c4 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Sun, 4 Jul 2021 23:05:15 +0200
Subject: Delete the XML storage for loading binary contents.

---
 src/analysis/content-int.h           |   5 --
 src/analysis/content.c               |  61 -----------------
 src/analysis/content.h               |   7 --
 src/analysis/contents/encapsulated.c | 127 -----------------------------------
 src/analysis/contents/encapsulated.h |   3 -
 src/analysis/contents/file.c         |  58 ----------------
 src/analysis/contents/file.h         |   3 -
 src/analysis/contents/memory.c       | 124 ----------------------------------
 src/analysis/contents/memory.h       |   3 -
 9 files changed, 391 deletions(-)

diff --git a/src/analysis/content-int.h b/src/analysis/content-int.h
index 886c196..4ef64f9 100644
--- a/src/analysis/content-int.h
+++ b/src/analysis/content-int.h
@@ -41,9 +41,6 @@ typedef GBinContent * (* get_content_root_fc) (GBinContent *);
 /* Fournit le nom associé au contenu binaire. */
 typedef char * (* describe_content_fc) (const GBinContent *, bool);
 
-/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */
-typedef bool (* save_content_fc) (const GBinContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *);
-
 /* Calcule une empreinte unique (SHA256) pour les données. */
 typedef void (* compute_checksum_fc) (GBinContent *, GChecksum *);
 
@@ -99,8 +96,6 @@ struct _GBinContentIface
 
     describe_content_fc describe;           /* Fournit une description     */
 
-    save_content_fc save;                   /* Sauvegarde du contenu       */
-
     compute_checksum_fc compute_checksum;   /* Calcul de l'empreinte       */
 
     compute_size_fc compute_size;           /* Calcul de la taille totale  */
diff --git a/src/analysis/content.c b/src/analysis/content.c
index d16619a..626497e 100644
--- a/src/analysis/content.c
+++ b/src/analysis/content.c
@@ -32,7 +32,6 @@
 
 
 #include "content-int.h"
-#include "contents/file.h" // REMME
 
 
 
@@ -65,39 +64,6 @@ static void g_binary_content_default_init(GBinContentInterface *iface)
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : context = contexte pour les recherches XPath.                *
-*                path    = chemin d'accès au noeud XML à lire.                *
-*                base    = référence au lieu d'enregistrement du projet.      *
-*                                                                             *
-*  Description : Charge en mémoire un contenu binaire à partir d'XML.         *
-*                                                                             *
-*  Retour      : Adresse de la représentation ou NULL en cas d'échec.         *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-GBinContent *g_binary_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base)
-{
-    GBinContent *result;                    /* Contenu en place à renvoyer */
-    char *type;                             /* Type de binaire à charger   */
-
-    result = NULL;
-
-    type = get_node_prop_value(context, path, "type");
-
-    if (strcmp(type, "file") == 0)
-        result = g_file_content_new_from_xml(context, path, base);
-
-    free(type);
-
-    return result;
-
-}
-
-
-/******************************************************************************
-*                                                                             *
 *  Paramètres  : content = contenu binaire à actualiser.                      *
 *                attribs = jeu d'attributs à lier au contenu courant.         *
 *                                                                             *
@@ -213,33 +179,6 @@ char *g_binary_content_describe(const GBinContent *content, bool full)
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : content = contenu binaire à traiter.                         *
-*                xdoc    = structure XML en cours d'édition.                  *
-*                context = contexte à utiliser pour les recherches.           *
-*                path    = chemin d'accès réservé au binaire.                 *
-*                base    = référence au lieu d'enregistrement du projet.      *
-*                                                                             *
-*  Description : Ecrit une sauvegarde de contenu binaire dans un fichier XML. *
-*                                                                             *
-*  Retour      : true si l'opération a bien tourné, false sinon.              *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-bool g_binary_content_save(const GBinContent *content, xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path, const char *base)
-{
-    GBinContentIface *iface;                /* Interface utilisée          */
-
-    iface = G_BIN_CONTENT_GET_IFACE(content);
-
-    return iface->save(content, xdoc, context, path, base);
-
-}
-
-
-/******************************************************************************
-*                                                                             *
 *  Paramètres  : content = contenu binaire à venir lire.                      *
 *                                                                             *
 *  Description : Fournit une empreinte unique (SHA256) pour les données.      *
diff --git a/src/analysis/content.h b/src/analysis/content.h
index d7f5536..58bd9b9 100644
--- a/src/analysis/content.h
+++ b/src/analysis/content.h
@@ -33,7 +33,6 @@
 #include "../arch/vmpa.h"
 #include "../common/endianness.h"
 #include "../common/leb128.h"
-#include "../common/xml.h"
 
 
 
@@ -55,9 +54,6 @@ typedef struct _GBinContentIface GBinContentIface;
 /* Détermine le type d'une interface pour la lecture de binaire. */
 GType g_binary_content_get_type(void) G_GNUC_CONST;
 
-/* Charge en mémoire un contenu binaire à partir d'XML. */
-GBinContent *g_binary_content_new_from_xml(xmlXPathContextPtr, const char *, const char *);
-
 /* Associe un ensemble d'attributs au contenu binaire. */
 void g_binary_content_set_attributes(GBinContent *, GContentAttributes *);
 
@@ -70,9 +66,6 @@ GBinContent *g_binary_content_get_root(GBinContent *);
 /* Fournit le nom associé au contenu binaire. */
 char *g_binary_content_describe(const GBinContent *, bool);
 
-/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */
-bool g_binary_content_save(const GBinContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *);
-
 /* Fournit une empreinte unique (SHA256) pour les données. */
 const gchar *g_binary_content_get_checksum(GBinContent *);
 
diff --git a/src/analysis/contents/encapsulated.c b/src/analysis/contents/encapsulated.c
index fa31aa4..7fb7e0c 100644
--- a/src/analysis/contents/encapsulated.c
+++ b/src/analysis/contents/encapsulated.c
@@ -87,9 +87,6 @@ static GBinContent *g_encaps_content_get_root(GEncapsContent *);
 /* Fournit le nom associé au contenu binaire. */
 static char *g_encaps_content_describe(const GEncapsContent *, bool);
 
-/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */
-static bool g_encaps_content_save(const GEncapsContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *);
-
 /* Fournit une empreinte unique (SHA256) pour les données. */
 static void g_encaps_content_compute_checksum(GEncapsContent *, GChecksum *);
 
@@ -226,8 +223,6 @@ static void g_encaps_content_interface_init(GBinContentInterface *iface)
 
     iface->describe = (describe_content_fc)g_encaps_content_describe;
 
-    iface->save = (save_content_fc)g_encaps_content_save;
-
     iface->compute_checksum = (compute_checksum_fc)g_encaps_content_compute_checksum;
 
     iface->compute_size = (compute_size_fc)g_encaps_content_compute_size;
@@ -345,75 +340,6 @@ GBinContent *g_encaps_content_new(GBinContent *base, const char *path, GBinConte
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : context = contexte pour les recherches XPath.                *
-*                path    = chemin d'accès au noeud XML à lire.                *
-*                base    = référence au lieu d'enregistrement du projet.      *
-*                                                                             *
-*  Description : Charge en mémoire un contenu encapsulé à partir d'XML.       *
-*                                                                             *
-*  Retour      : Adresse de la représentation ou NULL en cas d'échec.         *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-GBinContent *g_encaps_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base)
-{
-    GBinContent *result;                    /* Adresse à retourner         */
-    char *access;                           /* Chemin d'accès à un élément */
-    GBinContent *original;                  /* Base offrant une extraction */
-    char *target;                           /* Chemin vers le contenu ciblé*/
-    GBinContent *endpoint;                  /* Contenu ciblé               */
-
-    result = NULL;
-
-    /* Base de l'extraction */
-
-    access = strdup(path);
-    access = stradd(access, "/Base");
-
-    original = g_binary_content_new_from_xml(context, access, base);
-
-    free(access);
-
-    /* Référence au contenu encapsulé */
-
-    if (original != NULL)
-    {
-        access = strdup(path);
-        access = stradd(access, "/Path");
-
-        target = get_node_text_value(context, access);
-
-        if (target != NULL)
-        {
-            endpoint = NULL;/// TODO
-
-            if (endpoint != NULL)
-            {
-                result = g_encaps_content_new(original, target, endpoint);
-                g_object_unref(G_OBJECT(endpoint));
-            }
-
-            g_object_unref(G_OBJECT(original));
-
-        }
-        else
-            g_object_unref(G_OBJECT(original));
-
-
-        free(target);
-        free(access);
-
-    }
-
-    return result;
-
-}
-
-
-/******************************************************************************
-*                                                                             *
 *  Paramètres  : content = élément GLib à constuire.                          *
 *                storage = conservateur de données à manipuler ou NULL.       *
 *                pbuf    = zone tampon à lire.                                *
@@ -600,59 +526,6 @@ static char *g_encaps_content_describe(const GEncapsContent *content, bool full)
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : content = contenu binaire à traiter.                         *
-*                xdoc    = structure XML en cours d'édition.                  *
-*                context = contexte à utiliser pour les recherches.           *
-*                path    = chemin d'accès réservé au binaire.                 *
-*                base    = référence au lieu d'enregistrement du projet.      *
-*                                                                             *
-*  Description : Ecrit une sauvegarde de contenu binaire dans un fichier XML. *
-*                                                                             *
-*  Retour      : true si l'opération a bien tourné, false sinon.              *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-static bool g_encaps_content_save(const GEncapsContent *content, xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path, const char *base)
-{
-    bool result;                            /* Bilan à faire remonter      */
-    char *access;                           /* Chemin d'accès à un élément */
-
-    /* Type */
-
-    result = add_string_attribute_to_node(xdoc, context, path, "type", "encaps");
-    if (!result) goto gecs_exit;
-
-    /* Base de l'extraction */
-
-    access = strdup(path);
-    access = stradd(access, "/Base");
-
-    result = g_binary_content_save(content->base, xdoc, context, access, base);
-
-    free(access);
-
-    if (!result) goto gecs_exit;
-
-    /* Référence au contenu encapsulé */
-
-    access = strdup(path);
-    access = stradd(access, "/Path");
-
-    result = add_content_to_node(xdoc, context, access, content->path);
-
-    free(access);
-
- gecs_exit:
-
-    return result;
-
-}
-
-
-/******************************************************************************
-*                                                                             *
 *  Paramètres  : content  = contenu binaire à venir lire.                     *
 *                checksum = empreinte de zone mémoire à compléter.            *
 *                                                                             *
diff --git a/src/analysis/contents/encapsulated.h b/src/analysis/contents/encapsulated.h
index 2fac768..9b74eac 100644
--- a/src/analysis/contents/encapsulated.h
+++ b/src/analysis/contents/encapsulated.h
@@ -53,9 +53,6 @@ GType g_encaps_content_get_type(void);
 /* Charge en mémoire un contenu binaire encapsulé. */
 GBinContent *g_encaps_content_new(GBinContent *, const char *, GBinContent *);
 
-/* Charge en mémoire un contenu encapsulé à partir d'XML. */
-GBinContent *g_encaps_content_new_from_xml(xmlXPathContextPtr, const char *, const char *);
-
 /* Indique la base d'un contenu binaire encapsulé. */
 GBinContent *g_encaps_content_get_base(const GEncapsContent *);
 
diff --git a/src/analysis/contents/file.c b/src/analysis/contents/file.c
index 69bf510..78bd981 100644
--- a/src/analysis/contents/file.c
+++ b/src/analysis/contents/file.c
@@ -261,64 +261,6 @@ GBinContent *g_file_content_new(const char *filename)
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : context = contexte pour les recherches XPath.                *
-*                path    = chemin d'accès au noeud XML à lire.                *
-*                base    = référence au lieu d'enregistrement du projet.      *
-*                                                                             *
-*  Description : Charge en mémoire le contenu d'un fichier à partir d'XML.    *
-*                                                                             *
-*  Retour      : Adresse de la représentation ou NULL en cas d'échec.         *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-GBinContent *g_file_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base)
-{
-    return NULL;
-
-#if 0
-
-
-    GBinContent *result;                    /* Adresse à retourner         */
-    char *access;                           /* Chemin pour une sous-config.*/
-    char *filename;                         /* Chemin du binaire à charger */
-    char *absolute;                         /* Chemin absolu final         */
-
-    result = NULL;
-
-    /* Chemin du fichier à retrouver */
-
-    access = strdup(path);
-    access = stradd(access, "/Filename");
-
-    filename = get_node_text_value(context, access);
-
-    free(access);
-
-    /* Chargement */
-
-    if (filename != NULL)
-    {
-        absolute = build_absolute_filename(base, filename);
-
-        free(filename);
-
-        if (absolute != NULL)
-        {
-            result = g_file_content_new(absolute);
-            free(absolute);
-        }
-
-    }
-
-    return result;
-#endif
-}
-
-
-/******************************************************************************
-*                                                                             *
 *  Paramètres  : content = élément GLib à constuire.                          *
 *                storage = conservateur de données à manipuler ou NULL.       *
 *                pbuf    = zone tampon à lire.                                *
diff --git a/src/analysis/contents/file.h b/src/analysis/contents/file.h
index 98de045..5039f81 100644
--- a/src/analysis/contents/file.h
+++ b/src/analysis/contents/file.h
@@ -53,9 +53,6 @@ GType g_file_content_get_type(void);
 /* Charge en mémoire le contenu d'un fichier donné. */
 GBinContent *g_file_content_new(const char *);
 
-/* Charge en mémoire le contenu d'un fichier à partir d'XML. */
-GBinContent *g_file_content_new_from_xml(xmlXPathContextPtr, const char *, const char *);
-
 /* Fournit le nom de fichier associé au contenu binaire. */
 const char *g_file_content_get_filename(const GFileContent *);
 
diff --git a/src/analysis/contents/memory.c b/src/analysis/contents/memory.c
index 5d90694..7938562 100644
--- a/src/analysis/contents/memory.c
+++ b/src/analysis/contents/memory.c
@@ -78,9 +78,6 @@ static GBinContent *g_memory_content_get_root(GMemoryContent *);
 /* Fournit le nom associé au contenu binaire. */
 static char *g_memory_content_describe(const GMemoryContent *, bool);
 
-/* Ecrit une sauvegarde de contenu binaire dans un fichier XML. */
-static bool g_memory_content_save(const GMemoryContent *, xmlDocPtr, xmlXPathContextPtr, const char *, const char *);
-
 /* Fournit une empreinte unique (SHA256) pour les données. */
 static void g_memory_content_compute_checksum(GMemoryContent *, GChecksum *);
 
@@ -227,8 +224,6 @@ static void g_memory_content_interface_init(GBinContentInterface *iface)
 
     iface->describe = (describe_content_fc)g_memory_content_describe;
 
-    iface->save = (save_content_fc)g_memory_content_save;
-
     iface->compute_checksum = (compute_checksum_fc)g_memory_content_compute_checksum;
 
     iface->compute_size = (compute_size_fc)g_memory_content_compute_size;
@@ -340,64 +335,6 @@ GBinContent *g_memory_content_new(const bin_t *data, phys_t size)
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : context = contexte pour les recherches XPath.                *
-*                path    = chemin d'accès au noeud XML à lire.                *
-*                base    = référence au lieu d'enregistrement du projet.      *
-*                                                                             *
-*  Description : Charge des données à laisser en mémoire à partir d'XML.      *
-*                                                                             *
-*  Retour      : Adresse de la représentation ou NULL en cas d'échec.         *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-GBinContent *g_memory_content_new_from_xml(xmlXPathContextPtr context, const char *path, const char *base)
-{
-    return NULL;
-
-#if 0
-
-    GBinContent *result;                    /* Adresse à retourner         */
-    char *access;                           /* Chemin pour une sous-config.*/
-    char *encoded;                          /* Données encodées à charger  */
-    guchar *data;                           /* Données brutes à charger    */
-    gsize size;                             /* Quantité de ces données     */
-
-    result = NULL;
-
-    /* Chemin du fichier à retrouver */
-
-    access = strdup(path);
-    access = stradd(access, "/Data");
-
-    encoded = get_node_text_value(context, access);
-
-    free(access);
-
-    /* Chargement */
-
-    if (encoded != NULL)
-    {
-        data = g_base64_decode(encoded, &size);
-
-        free(encoded);
-
-        if (data != NULL)
-        {
-            result = g_memory_content_new(data, size);
-            g_free(data);
-        }
-
-    }
-
-    return result;
-#endif
-}
-
-
-/******************************************************************************
-*                                                                             *
 *  Paramètres  : content = élément GLib à constuire.                          *
 *                storage = conservateur de données à manipuler ou NULL.       *
 *                pbuf    = zone tampon à lire.                                *
@@ -609,67 +546,6 @@ static char *g_memory_content_describe(const GMemoryContent *content, bool full)
 
 /******************************************************************************
 *                                                                             *
-*  Paramètres  : content = contenu binaire à traiter.                         *
-*                xdoc    = structure XML en cours d'édition.                  *
-*                context = contexte à utiliser pour les recherches.           *
-*                path    = chemin d'accès réservé au binaire.                 *
-*                base    = référence au lieu d'enregistrement du projet.      *
-*                                                                             *
-*  Description : Ecrit une sauvegarde de contenu binaire dans un fichier XML. *
-*                                                                             *
-*  Retour      : true si l'opération a bien tourné, false sinon.              *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-static bool g_memory_content_save(const GMemoryContent *content, xmlDocPtr xdoc, xmlXPathContextPtr context, const char *path, const char *base)
-{
-    return false;
-
-#if 0
-
-    bool result;                            /* Bilan à faire remonter      */
-    char *access;                           /* Chemin d'accès à un élément */
-    vmpa2t start;                           /* Tête de lecture initiale    */
-    phys_t length;                          /* Nombre d'octets disponibles */
-    const bin_t *data;                      /* Données brutes à sauvegarder*/
-    gchar *encoded;                         /* Données encodées à écrire   */
-
-    /* Type */
-
-    result = add_string_attribute_to_node(xdoc, context, path, "type", "memory");
-    if (!result) goto gmcs_exit;
-
-    /* Données en mémoire associées */
-
-    access = strdup(path);
-    access = stradd(access, "/Data");
-
-    init_vmpa(&start, 0, VMPA_NO_VIRTUAL);
-
-    length = g_binary_content_compute_size(content->backend);
-
-    data = g_binary_content_get_raw_access(content->backend, &start, length);
-    assert(data != NULL);
-
-    encoded = g_base64_encode((const guchar *)data, length);
-    assert(encoded != NULL);
-
-    result = add_content_to_node(xdoc, context, access, encoded);
-
-    g_free(encoded);
-    free(access);
-
- gmcs_exit:
-
-    return result;
-#endif
-}
-
-
-/******************************************************************************
-*                                                                             *
 *  Paramètres  : content  = contenu binaire à venir lire.                     *
 *                checksum = empreinte de zone mémoire à compléter.            *
 *                                                                             *
diff --git a/src/analysis/contents/memory.h b/src/analysis/contents/memory.h
index 434d586..1759e69 100644
--- a/src/analysis/contents/memory.h
+++ b/src/analysis/contents/memory.h
@@ -53,9 +53,6 @@ GType g_memory_content_get_type(void);
 /* Charge en mémoire le contenu de données brutes. */
 GBinContent *g_memory_content_new(const bin_t *, phys_t);
 
-/* Charge des données à laisser en mémoire à partir d'XML. */
-GBinContent *g_memory_content_new_from_xml(xmlXPathContextPtr, const char *, const char *);
-
 
 
 #endif  /* _ANALYSIS_CONTENTS_MEMORY_H */
-- 
cgit v0.11.2-87-g4458