diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2020-04-13 18:41:28 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2020-04-13 18:41:28 (GMT) |
commit | e75a1aea506869d441fc084f78102367be1f9ed2 (patch) | |
tree | 77b46bed6e4026fd764fc3767e1cb9feb660dd56 /src/analysis/loading.c | |
parent | 8d4c5ae6dfd812b753109a25d7e84f7e524d4bf0 (diff) |
Simplified the loading process of binary contents.
Diffstat (limited to 'src/analysis/loading.c')
-rw-r--r-- | src/analysis/loading.c | 114 |
1 files changed, 4 insertions, 110 deletions
diff --git a/src/analysis/loading.c b/src/analysis/loading.c index a376b4b..842628d 100644 --- a/src/analysis/loading.c +++ b/src/analysis/loading.c @@ -113,9 +113,6 @@ typedef struct _exploring_group GBinContent **contents; /* Contenus reconnus dispos. */ size_t count; /* Taille de cette liste */ - GLoadedContent **loaded; /* Contenus reconnus à intégrer*/ - size_t noted; /* Taille de cette liste */ - } exploring_group; /* Exploration de contenus binaires (instance) */ @@ -732,9 +729,6 @@ wgroup_id_t g_content_explorer_create_group(GContentExplorer *explorer, GBinCont group->contents = NULL; group->count = 0; - group->loaded = NULL; - group->noted = 0; - /* Alimentation du contenu initial */ work = g_exploring_work_new(content); @@ -790,12 +784,6 @@ void g_content_explorer_delete_group(GContentExplorer *explorer, wgroup_id_t wid if (group->contents != NULL) free(group->contents); - for (i = 0; i < group->noted; i++) - g_object_unref(G_OBJECT(group->loaded[i])); - - if (group->loaded != NULL) - free(group->loaded); - /* Réorganisation de la liste */ index = group - explorer->groups; @@ -866,39 +854,6 @@ void g_content_explorer_populate_group(GContentExplorer *explorer, wgroup_id_t w /****************************************************************************** * * * Paramètres : explorer = gestionnaire d'explorations à consulter. * -* wid = identifiant du groupe recherché. * -* loaded = contenu chargé et pouvant être représenté. * -* * -* Description : Note un contenu chargé pour future intégration guidée. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -void g_content_explorer_note_detected(GContentExplorer *explorer, wgroup_id_t wid, GLoadedContent *loaded) -{ - exploring_group *group; /* Groupe d'opération concerné */ - - g_mutex_lock(&explorer->mutex); - - group = g_content_explorer_find_group(explorer, wid); - assert(group != NULL); - - group->loaded = realloc(group->loaded, ++group->noted * sizeof(GLoadedContent *)); - - group->loaded[group->noted - 1] = loaded; - g_object_ref(G_OBJECT(loaded)); - - g_mutex_unlock(&explorer->mutex); - -} - - -/****************************************************************************** -* * -* Paramètres : explorer = gestionnaire d'explorations à consulter. * * wid = identifiant du groupe à parcourir. * * count = nombre de contenus binaires retournés. [OUT] * * * @@ -949,53 +904,6 @@ GBinContent **g_content_explorer_get_all(GContentExplorer *explorer, wgroup_id_t } -/****************************************************************************** -* * -* Paramètres : explorer = gestionnaire d'explorations à consulter. * -* wid = identifiant du groupe à parcourir. * -* noted = nombre de contenus chargés retournés. [OUT] * -* * -* Description : Fournit la liste de tous les contenus préalablement détectés.* -* * -* Retour : Liste de contenus chargés enregistrés. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GLoadedContent **g_content_explorer_get_detected(GContentExplorer *explorer, wgroup_id_t wid, size_t *noted) -{ - GLoadedContent **result; /* Trouvailles à retourner */ - exploring_group *group; /* Groupe d'opération concerné */ - size_t i; /* Boucle de parcours */ - - g_mutex_lock(&explorer->mutex); - - group = g_content_explorer_find_group(explorer, wid); - assert(group != NULL); - - /* Allocation de la liste finale */ - - *noted = group->noted; - result = (GLoadedContent **)malloc(*noted * sizeof(GLoadedContent *)); - - /* On parcourt les éventuels contenus encapsulés découverts */ - - for (i = 0; i < group->noted; i++) - { - result[i] = group->loaded[i]; - - g_object_ref(G_OBJECT(result[i])); - - } - - g_mutex_unlock(&explorer->mutex); - - return result; - -} - - /* ---------------------------------------------------------------------------------- */ /* TACHE DE RESOLUTION DE CONTENU */ @@ -1401,8 +1309,6 @@ static void g_content_resolver_ack(GContentResolver *resolver, GResolvingWork *w * wid = identifiant du groupe de tâches réservé. * * contents = contenus à analyser. * * count = nombre de ces contenus. * -* detected = contenus préalablement détectés. * -* noted = nombre de contenus chargés. * * * * Description : Initie une nouvelle vague de résolution de contenus. * * * @@ -1412,7 +1318,7 @@ static void g_content_resolver_ack(GContentResolver *resolver, GResolvingWork *w * * ******************************************************************************/ -void g_content_resolver_create_group(GContentResolver *resolver, wgroup_id_t wid, GBinContent **contents, size_t count, GLoadedContent **detected, size_t noted) +void g_content_resolver_create_group(GContentResolver *resolver, wgroup_id_t wid, GBinContent **contents, size_t count) { resolving_group *group; /* Groupe ciblé par l'opération*/ GWorkQueue *queue; /* Gestionnaire de différés */ @@ -1434,21 +1340,6 @@ void g_content_resolver_create_group(GContentResolver *resolver, wgroup_id_t wid group->loaded = NULL; group->count = 0; - /* Insertion des résultats préalables */ - - if (noted > 0) - { - group->count = noted; - group->loaded = realloc(group->loaded, group->count * sizeof(GLoadedContent *)); - - for (i = 0; i < noted; i++) - { - group->loaded[i] = detected[i]; - g_object_ref(G_OBJECT(detected[i])); - } - - } - /* Alimentation du contenu initial */ queue = get_work_queue(); @@ -1466,6 +1357,9 @@ void g_content_resolver_create_group(GContentResolver *resolver, wgroup_id_t wid g_mutex_unlock(&resolver->mutex); + if (count == 0) + g_signal_emit_by_name(resolver, "resolved", wid); + } |