star-hitran

Load line-by-line data from the HITRAN database
git clone git://git.meso-star.fr/star-hitran.git
Log | Files | Refs | README | LICENSE

commit ca2e82b49f1c7a0f6044bfdc2697dd3beaa2cad3
parent 05e15cd4754a82d08341a4e82a88945b465bc542
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed,  9 Mar 2022 14:26:32 +0100

Implement the shtr_lines_view getters

Diffstat:
Msrc/shtr.h | 25++++++++++++++++++-------
Msrc/shtr_lines_view.c | 23+++++++++++++++++++++++
2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/src/shtr.h b/src/shtr.h @@ -191,31 +191,31 @@ SHTR_API res_T shtr_lines_list_load (struct shtr* shtr, const char* path, - struct shtr_lines_list** lnlst); + struct shtr_lines_list** list); SHTR_API res_T shtr_lines_list_load_stream (struct shtr* shtr, FILE* stream, const char* stream_name, /* NULL <=> use default stream name */ - struct shtr_lines_list** lnlst); + struct shtr_lines_list** list); SHTR_API res_T shtr_lines_list_ref_get - (struct shtr_lines_list* lnlst); + (struct shtr_lines_list* list); SHTR_API res_T shtr_lines_list_ref_put - (struct shtr_lines_list* lnlst); + (struct shtr_lines_list* list); SHTR_API res_T shtr_lines_list_get_size - (const struct shtr_lines_list* lnlst, + (const struct shtr_lines_list* list, size_t* nlines); SHTR_API res_T shtr_lines_list_get - (const struct shtr_lines_list* lnlst, + (const struct shtr_lines_list* list, const struct shtr_line* lines[]); /******************************************************************************* @@ -223,7 +223,7 @@ shtr_lines_list_get ******************************************************************************/ SHTR_API res_T shtr_lines_view_create - (struct shtr_lines_list* lnlst, + (struct shtr_lines_list* list, const struct shtr_lines_view_create_args* args, struct shtr_lines_view** view); @@ -235,6 +235,17 @@ SHTR_API res_T shtr_lines_view_ref_put (struct shtr_lines_view* view); +SHTR_API res_T +shtr_lines_view_get_size + (const struct shtr_lines_view* view, + size_t* nlines); + +SHTR_API res_T +shtr_lines_view_get_line + (const struct shtr_lines_view* view, + const size_t iline, + const struct shtr_line** line); + END_DECLS #endif /* SHTR_H */ diff --git a/src/shtr_lines_view.c b/src/shtr_lines_view.c @@ -251,3 +251,26 @@ shtr_lines_view_ref_put(struct shtr_lines_view* view) ref_put(&view->ref, release_lines_view); return RES_OK; } + +res_T +shtr_lines_view_get_size(const struct shtr_lines_view* view, size_t* sz) +{ + if(!view || !sz) return RES_BAD_ARG; + *sz = darray_size_t_size_get(&view->line_ids); + return RES_OK; +} + +res_T +shtr_lines_view_get_line + (const struct shtr_lines_view* view, + const size_t iline, + const struct shtr_line** line) +{ + size_t i; + if(!view || !line || iline >= darray_size_t_size_get(&view->line_ids)) { + return RES_BAD_ARG; + } + i = darray_size_t_cdata_get(&view->line_ids)[iline]; + *line = darray_line_cdata_get(&view->list->lines) + i; + return RES_OK; +}