summaryrefslogtreecommitdiff
path: root/src/analysis/contents
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-07-01 19:22:17 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-07-01 19:22:17 (GMT)
commitbfd453d597d23b5c782aa8d40eb744d2ab56838e (patch)
treeb285ada70fcb80b367542ec876716b2aa33ebc5c /src/analysis/contents
parent2f1a1323b4b6c5d4ff84a6d4d335e0cf56c5c8fa (diff)
Introduced attributes for loaded contents.
Diffstat (limited to 'src/analysis/contents')
-rw-r--r--src/analysis/contents/file.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/analysis/contents/file.c b/src/analysis/contents/file.c
index 5beb0e3..951828f 100644
--- a/src/analysis/contents/file.c
+++ b/src/analysis/contents/file.c
@@ -44,6 +44,8 @@ struct _GFileContent
{
GObject parent; /* A laisser en premier */
+ GContentAttributes *attribs; /* Attributs liés au contenu */
+
char *filename; /* Fichier chargé en mémoire */
bin_t *data; /* Contenu binaire représenté */
@@ -74,6 +76,12 @@ static void g_file_content_dispose(GFileContent *);
/* Procède à la libération totale de la mémoire. */
static void g_file_content_finalize(GFileContent *);
+/* Associe un ensemble d'attributs au contenu binaire. */
+static void g_file_content_set_attributes(GFileContent *, GContentAttributes *);
+
+/* Fournit l'ensemble des attributs associés à un contenu. */
+static GContentAttributes *g_file_content_get_attributes(const GFileContent *);
+
/* Donne l'origine d'un contenu binaire. */
static GBinContent *g_file_content_get_root(GFileContent *);
@@ -170,6 +178,13 @@ static void g_file_content_class_init(GFileContentClass *klass)
static void g_file_content_init(GFileContent *content)
{
+ GContentAttributes *empty; /* Jeu d'attributs vide */
+
+ content->attribs = NULL;
+
+ empty = g_content_attributes_new("");
+
+ g_binary_content_set_attributes(G_BIN_CONTENT(content), empty);
}
@@ -188,6 +203,9 @@ static void g_file_content_init(GFileContent *content)
static void g_file_content_interface_init(GBinContentInterface *iface)
{
+ iface->set_attribs = (set_content_attributes)g_file_content_set_attributes;
+ iface->get_attribs = (get_content_attributes)g_file_content_get_attributes;
+
iface->get_root = (get_content_root_fc)g_file_content_get_root;
iface->describe = (describe_content_fc)g_file_content_describe;
@@ -231,6 +249,8 @@ static void g_file_content_interface_init(GBinContentInterface *iface)
static void g_file_content_dispose(GFileContent *content)
{
+ g_clear_object(&content->attribs);
+
G_OBJECT_CLASS(g_file_content_parent_class)->dispose(G_OBJECT(content));
}
@@ -385,6 +405,49 @@ GBinContent *g_file_content_new_from_xml(xmlXPathContextPtr context, const char
/******************************************************************************
* *
+* Paramètres : content = contenu binaire à actualiser. *
+* attribs = jeu d'attributs à lier au contenu courant. *
+* *
+* Description : Associe un ensemble d'attributs au contenu binaire. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void g_file_content_set_attributes(GFileContent *content, GContentAttributes *attribs)
+{
+ content->attribs = attribs;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : content = contenu binaire à consulter. *
+* *
+* Description : Fournit l'ensemble des attributs associés à un contenu. *
+* *
+* Retour : Jeu d'attributs liés au contenu courant. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static GContentAttributes *g_file_content_get_attributes(const GFileContent *content)
+{
+ GContentAttributes *result; /* Instance à retourner */
+
+ result = content->attribs;
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : content = contenu binaire à consulter. *
* *
* Description : Donne l'origine d'un contenu binaire. *