diff options
Diffstat (limited to 'src/analysis/content.c')
-rw-r--r-- | src/analysis/content.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/analysis/content.c b/src/analysis/content.c index 5a4c899..d314d0c 100644 --- a/src/analysis/content.c +++ b/src/analysis/content.c @@ -24,7 +24,11 @@ #include "content.h" +#include <string.h> + + #include "content-int.h" +#include "contents/file.h" @@ -57,6 +61,88 @@ 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. * +* * +* 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) +{ + 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); + + free(type); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : content = contenu binaire à consulter. * +* full = précise s'il s'agit d'une version longue ou non. * +* * +* Description : Fournit le nom associé au contenu binaire. * +* * +* Retour : Nom de fichier avec chemin absolu au besoin. * +* * +* Remarques : - * +* * +******************************************************************************/ + +const char *g_binary_content_describe(const GBinContent *content, bool full) +{ + GBinContentIface *iface; /* Interface utilisée */ + + iface = G_BIN_CONTENT_GET_IFACE(content); + + return iface->describe(content, 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. * +* * +* 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) +{ + GBinContentIface *iface; /* Interface utilisée */ + + iface = G_BIN_CONTENT_GET_IFACE(content); + + return iface->save(content, xdoc, context, path); + +} + + +/****************************************************************************** +* * * Paramètres : content = contenu binaire à venir lire. * * * * Description : Fournit une empreinte unique (SHA256) pour les données. * |