summaryrefslogtreecommitdiff
path: root/src/analysis/scan/context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/scan/context.h')
-rw-r--r--src/analysis/scan/context.h34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/analysis/scan/context.h b/src/analysis/scan/context.h
index 916c618..75190ce 100644
--- a/src/analysis/scan/context.h
+++ b/src/analysis/scan/context.h
@@ -28,9 +28,12 @@
#include <glib-object.h>
-#include "match.h"
+#include "matches.h"
#include "options.h"
+#include "matches/area.h"
+#include "patterns/patid.h"
#include "../content.h"
+#include "../../glibext/umemslice.h"
@@ -53,12 +56,6 @@ typedef struct _GScanContext GScanContext;
typedef struct _GScanContextClass GScanContextClass;
-/* Identifiant de motif intégré */
-typedef uint64_t patid_t;
-
-#define INVALID_PATTERN_ID 0xffffffffffffffff
-
-
/* Indique le type défini pour un contexte de suivi d'analyse. */
GType g_scan_context_get_type(void);
@@ -68,11 +65,8 @@ GScanContext *g_scan_context_new(GScanOptions *);
/* Fournit l'ensemble des options à respecter pour les analyses. */
GScanOptions *g_scan_context_get_options(const GScanContext *);
-/* Fournit un identifiant unique pour un motif recherché. */
-patid_t g_scan_context_get_new_pattern_id(GScanContext *);
-
/* Définit le contenu principal à analyser. */
-void g_scan_context_set_content(GScanContext *, GBinContent *);
+void g_scan_context_set_content(GScanContext *, GBinContent *, size_t);
/* Fournit une référence au contenu principal analysé. */
GBinContent *g_scan_context_get_content(const GScanContext *);
@@ -83,20 +77,20 @@ bool g_scan_context_is_scan_done(const GScanContext *);
/* Note que la phase d'analyse de contenu est terminée. */
void g_scan_context_mark_scan_as_done(GScanContext *);
-/* Enregistre une correspondance partielle dans un contenu. */
-void g_scan_context_register_atom_match(GScanContext *, patid_t, phys_t);
+/* Fournit la liste des allocateurs mémorisant des emplacements. */
+GUMemSlice **g_scan_context_get_match_storages(GScanContext *, size_t *);
/* Retourne tous les correspondances partielles notées. */
-const phys_t *g_scan_context_get_atom_matches(const GScanContext *, patid_t, size_t *);
+GUMemSlice *g_scan_context_get_atom_matches(const GScanContext *, patid_t);
-/* Prépare les enregistrements de correspondances complètes. */
-void g_scan_context_prepare_full_match_registration(GScanContext *, GSearchPattern *, size_t);
+/* Enregistre toutes les correspondances établies pour un motif. */
+void g_scan_context_register_full_matches(GScanContext *, GSearchPattern *, GScanMatches *);
-/* Enregistre une correspondance complète avec un contenu. */
-void g_scan_context_register_full_match(GScanContext *, GScanMatch *);
+/* Fournit la liste de toutes les correspondances pour un motif. */
+GScanMatches *g_scan_context_get_full_matches(const GScanContext *, const GSearchPattern *);
-/* Fournit la liste de toutes les correspondances d'un motif. */
-const GScanMatch **g_scan_context_get_full_matches(const GScanContext *, const GSearchPattern *, size_t *);
+/* Dénombre les correspondances associées à un motif. */
+size_t g_scan_context_count_full_matches(const GScanContext *, const GSearchPattern *);
/* Intègre une condition de correspondance pour règle. */
bool g_scan_context_set_rule_condition(GScanContext *, const char *, GScanExpression *);