diff options
Diffstat (limited to 'src/analysis/scan/scanner.c')
-rw-r--r-- | src/analysis/scan/scanner.c | 116 |
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 */ + +} |