summaryrefslogtreecommitdiff
path: root/src/analysis/scan/scanner.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/scan/scanner.c')
-rw-r--r--src/analysis/scan/scanner.c116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/analysis/scan/scanner.c b/src/analysis/scan/scanner.c
index ce8d677..b550b1f 100644
--- a/src/analysis/scan/scanner.c
+++ b/src/analysis/scan/scanner.c
@@ -510,6 +510,8 @@ GScanContext *g_content_scanner_analyze(GContentScanner *scanner, GScanOptions *
g_engine_backend_run_scan(scanner->data_backend, result);
+ g_scan_context_mark_scan_as_done(result);
+
for (i = 0; i < scanner->rule_count; i++)
g_scan_rule_check(scanner->rules[i], scanner->data_backend, result);
@@ -518,3 +520,117 @@ GScanContext *g_content_scanner_analyze(GContentScanner *scanner, GScanOptions *
return result;
}
+
+
+/******************************************************************************
+* *
+* Paramètres : scanner = gestionnaire de recherche à consulter. *
+* context = contexte de l'analyse à mener. *
+* fd = canal d'écriture. *
+* *
+* Description : Affiche un gestionnaire de recherches au format texte. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_content_scanner_output_to_text(const GContentScanner *scanner, GScanContext *context, int fd)
+{
+ size_t i; /* Boucle de parcours */
+
+ /* Sous-traitance aux règles */
+
+ for (i = 0; i < scanner->rule_count; i++)
+ g_scan_rule_output_to_text(scanner->rules[i], context, fd);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : scanner = gestionnaire de recherche à consulter. *
+* context = contexte de l'analyse à mener. *
+* *
+* Description : Convertit un gestionnaire de recherches en texte. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_content_scanner_convert_as_text(const GContentScanner *scanner, GScanContext *context)
+{
+ /* TODO */
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : scanner = gestionnaire de recherche à consulter. *
+* context = contexte de l'analyse à mener. *
+* padding = éventuel bourrage initial à placer ou NULL. *
+* level = profondeur actuelle. *
+* fd = canal d'écriture. *
+* *
+* Description : Affiche un gestionnaire de recherches au format JSON. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_content_scanner_output_to_json(const GContentScanner *scanner, GScanContext *context, const sized_string_t *padding, unsigned int level, int fd)
+{
+ size_t i; /* Boucle de parcours */
+ bool trailing; /* Virgule finale */
+
+ /* Introduction */
+
+ for (i = 0; i < level; i++)
+ write(fd, padding->data, padding->len);
+
+ write(fd, "[\n", 2);
+
+ /* Sous-traitance aux règles */
+
+ for (i = 0; i < scanner->rule_count; i++)
+ {
+ trailing = ((i + 1) < scanner->rule_count);
+
+ g_scan_rule_output_to_json(scanner->rules[i], context, padding, level + 1, fd, trailing);
+
+ }
+
+ /* Conclusion */
+
+ for (i = 0; i < level; i++)
+ write(fd, padding->data, padding->len);
+
+ write(fd, "]\n", 2);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : scanner = gestionnaire de recherche à consulter. *
+* context = contexte de l'analyse à mener. *
+* *
+* Description : Convertit un gestionnaire de recherches en JSON. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_content_scanner_convert_as_json(const GContentScanner *scanner, GScanContext *context)
+{
+ /* TODO */
+
+}