diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2019-07-01 19:22:17 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2019-07-01 19:22:17 (GMT) |
commit | bfd453d597d23b5c782aa8d40eb744d2ab56838e (patch) | |
tree | b285ada70fcb80b367542ec876716b2aa33ebc5c /src/analysis/contents | |
parent | 2f1a1323b4b6c5d4ff84a6d4d335e0cf56c5c8fa (diff) |
Introduced attributes for loaded contents.
Diffstat (limited to 'src/analysis/contents')
-rw-r--r-- | src/analysis/contents/file.c | 63 |
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. * |