From 31cf27d6767b224d94a5b1229fda0f9d5b66299c Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Fri, 29 Apr 2016 16:18:56 +0200 Subject: [PATCH] Added indexer function that returns the name of the indexer --- src/obiavl.c | 5 +++++ src/obiavl.h | 13 +++++++++++++ src/obiblob_indexer.c | 2 ++ src/obiblob_indexer.h | 16 ++++++++++++++++ src/obidms.c | 4 ++-- 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/obiavl.c b/src/obiavl.c index 1753cef..23c1c7c 100644 --- a/src/obiavl.c +++ b/src/obiavl.c @@ -2217,3 +2217,8 @@ index_t obi_avl_group_add(OBIDMS_avl_group_p avl_group, Obi_blob_p value) } +const char* obi_avl_group_get_name(OBIDMS_avl_group_p avl_group) +{ + return avl_group->name; +} + diff --git a/src/obiavl.h b/src/obiavl.h index 925d1bd..aeb25d3 100644 --- a/src/obiavl.h +++ b/src/obiavl.h @@ -410,5 +410,18 @@ Obi_blob_p obi_avl_group_get(OBIDMS_avl_group_p avl_group, index_t idx); index_t obi_avl_group_add(OBIDMS_avl_group_p avl_group, Obi_blob_p value); +/** + * @brief Recovers the name of an AVL group. + * + * @param avl_group A pointer on the AVL group structure. + * + * @returns A pointer on the name of the AVL group. + * + * @since April 2016 + * @author Celine Mercier (celine.mercier@metabarcoding.org) + */ +const char* obi_avl_group_get_name(OBIDMS_avl_group_p avl_group); + + #endif /* OBIAVL_H_ */ diff --git a/src/obiblob_indexer.c b/src/obiblob_indexer.c index 807993c..a937ec0 100644 --- a/src/obiblob_indexer.c +++ b/src/obiblob_indexer.c @@ -36,6 +36,8 @@ inline index_t obi_indexer_add(Obi_indexer_p indexer, Obi_blob_p value); inline Obi_blob_p obi_indexer_get(Obi_indexer_p indexer, index_t idx); +inline const char* obi_indexer_get_name(Obi_indexer_p indexer); + char* obi_build_indexer_name(const char* column_name, obiversion_t column_version) { diff --git a/src/obiblob_indexer.h b/src/obiblob_indexer.h index f9ae233..6aa5e9d 100644 --- a/src/obiblob_indexer.h +++ b/src/obiblob_indexer.h @@ -159,6 +159,22 @@ inline Obi_blob_p obi_indexer_get(Obi_indexer_p indexer, index_t idx) } +/** + * @brief Recovers the name of an indexer. + * + * @param indexer A pointer on the indexer. + * + * @returns A pointer on the name of the indexer. + * + * @since April 2016 + * @author Celine Mercier (celine.mercier@metabarcoding.org) + */ +inline const char* obi_indexer_get_name(Obi_indexer_p indexer) +{ + return obi_avl_group_get_name(indexer); +} + + /** * @brief Builds an indexer name in the form columnname_columnversion_indexer. * diff --git a/src/obidms.c b/src/obidms.c index 6f83334..0a294ed 100644 --- a/src/obidms.c +++ b/src/obidms.c @@ -551,7 +551,7 @@ Obi_indexer_p obi_dms_get_indexer_from_list(OBIDMS_p dms, const char* indexer_na for (i=0; i < (indexers_list->nb_opened_indexers); i++) { - if (!strcmp(((indexers_list->indexers)[i])->name, indexer_name)) // TODO get_name function indexer + if (!strcmp(obi_indexer_get_name((indexers_list->indexers)[i]), indexer_name)) { // Found the indexer already opened, return it return (indexers_list->indexers)[i]; } @@ -577,7 +577,7 @@ int obi_dms_unlist_indexer(OBIDMS_p dms, Obi_indexer_p indexer) for (i=0; i < indexers_list->nb_opened_indexers; i++) { - if (!strcmp(((indexers_list->indexers)[i])->name, indexer->name)) // TODO get_name function indexer + if (!strcmp(obi_indexer_get_name((indexers_list->indexers)[i]), indexer->name)) { // Found the indexer. Rearrange list (indexers_list->nb_opened_indexers)--; (indexers_list->indexers)[i] = (indexers_list->indexers)[indexers_list->nb_opened_indexers];