From 7f3ee3cc18b66f0b5a73464b8f512b17cf517081 Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 2 Nov 2021 10:32:00 +0100 Subject: [PATCH] reset back end values and add TREXIO_BACK_END_MISSING error --- src/templates_front/templator_front.org | 124 ++++++++++++++++-------- 1 file changed, 84 insertions(+), 40 deletions(-) diff --git a/src/templates_front/templator_front.org b/src/templates_front/templator_front.org index 45e2008..95dd73b 100644 --- a/src/templates_front/templator_front.org +++ b/src/templates_front/templator_front.org @@ -25,10 +25,6 @@ #ifndef TREXIO_H #define TREXIO_H -#ifdef HAVE_CONFIG_H - #include "config.h" -#endif - #include typedef int32_t trexio_exit_code; @@ -189,6 +185,7 @@ __trexio_path__ = None | ~TREXIO_UNSAFE_ARRAY_DIM~ | 23 | 'Access to memory beyond allocated' | | ~TREXIO_ATTR_MISSING~ | 24 | 'Attribute does not exist in the file' | | ~TREXIO_DSET_MISSING~ | 25 | 'Dataset does not exist in the file' | + | ~TREXIO_BACK_END_MISSING~ | 26 | 'Requested back end is disabled' | | ~TREXIO_INVALID_STR_LEN~ | 30 | 'Invalid max_str_len' | # We need to force Emacs not to indent the Python code: @@ -228,7 +225,7 @@ return '\n'.join(result) #+RESULTS: - :results: + :RESULTS: #+begin_src c :tangle prefix_front.h :exports none #define TREXIO_FAILURE ((trexio_exit_code) -1) #define TREXIO_SUCCESS ((trexio_exit_code) 0) @@ -257,6 +254,7 @@ return '\n'.join(result) #define TREXIO_UNSAFE_ARRAY_DIM ((trexio_exit_code) 23) #define TREXIO_ATTR_MISSING ((trexio_exit_code) 24) #define TREXIO_DSET_MISSING ((trexio_exit_code) 25) + #define TREXIO_BACK_END_MISSING ((trexio_exit_code) 26) #define TREXIO_INVALID_STR_LEN ((trexio_exit_code) 30) #+end_src @@ -288,6 +286,7 @@ return '\n'.join(result) integer(trexio_exit_code), parameter :: TREXIO_UNSAFE_ARRAY_DIM = 23 integer(trexio_exit_code), parameter :: TREXIO_ATTR_MISSING = 24 integer(trexio_exit_code), parameter :: TREXIO_DSET_MISSING = 25 + integer(trexio_exit_code), parameter :: TREXIO_BACK_END_MISSING = 26 integer(trexio_exit_code), parameter :: TREXIO_INVALID_STR_LEN = 30 #+end_src @@ -320,9 +319,10 @@ return '\n'.join(result) TREXIO_UNSAFE_ARRAY_DIM = 23 TREXIO_ATTR_MISSING = 24 TREXIO_DSET_MISSING = 25 + TREXIO_BACK_END_MISSING = 26 TREXIO_INVALID_STR_LEN = 30 #+end_src - :end: + :END: *** Decoding errors @@ -532,23 +532,19 @@ def string_of_error(return_code: int) -> str: #+begin_src c :tangle prefix_front.h typedef int32_t back_end_t; -#define TREXIO_TEXT ( (back_end_t) 0 ) -#ifdef HAVE_HDF5 -#define TREXIO_HDF5 ( (back_end_t) 1 ) +#define TREXIO_HDF5 ( (back_end_t) 0 ) +#define TREXIO_TEXT ( (back_end_t) 1 ) #define TREXIO_INVALID_BACK_END ( (back_end_t) 2 ) -#else -#define TREXIO_INVALID_BACK_END ( (back_end_t) 1 ) -#endif /*#define TREXIO_JSON ( (back_end_t) 2 )*/ #define TREXIO_DELIM "\n" #+end_src - + *** Fortran #+begin_src f90 :tangle prefix_fortran.f90 - integer(trexio_backend), parameter :: TREXIO_TEXT = 0 - integer(trexio_backend), parameter :: TREXIO_HDF5 = 1 + integer(trexio_backend), parameter :: TREXIO_HDF5 = 0 + integer(trexio_backend), parameter :: TREXIO_TEXT = 1 ! integer(trexio_backend), parameter :: TREXIO_JSON = 2 integer(trexio_backend), parameter :: TREXIO_INVALID_BACK_END = 2 #+end_src @@ -557,12 +553,12 @@ typedef int32_t back_end_t; #+begin_src python :tangle prefix_python.py # define TREXIO back ends -TREXIO_TEXT = 0 -TREXIO_HDF5 = 1 +TREXIO_HDF5 = 0 +TREXIO_TEXT = 1 #TREXIO_JSON = 2 TREXIO_INVALID_BACK_END = 2 #+end_src - + ** Read/write behavior Every time a reading function is called, the data is read from the @@ -754,10 +750,13 @@ trexio_open(const char* file_name, const char mode, result_tmp = malloc(sizeof(trexio_text_t)); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 result_tmp = malloc(sizeof(trexio_hdf5_t)); break; +#else + if (rc_open != NULL) *rc_open = TREXIO_BACK_END_MISSING; + return NULL; #endif /* case TREXIO_JSON: @@ -807,10 +806,13 @@ trexio_open(const char* file_name, const char mode, rc = trexio_text_init(result); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_init(result); break; +#else + if (rc_open != NULL) *rc_open = TREXIO_BACK_END_MISSING; + return NULL; #endif /* case TREXIO_JSON: @@ -839,10 +841,13 @@ trexio_open(const char* file_name, const char mode, rc = trexio_text_write_metadata_package_version(result, TREXIO_PACKAGE_VERSION); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_write_metadata_package_version(result, TREXIO_PACKAGE_VERSION); break; +#else + if (rc_open != NULL) *rc_open = TREXIO_BACK_END_MISSING; + return NULL; #endif /* case TREXIO_JSON: @@ -869,10 +874,13 @@ trexio_open(const char* file_name, const char mode, rc = trexio_text_lock(result); break; /* HDF5 v.>=1.10 has file locking activated by default */ -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = TREXIO_SUCCESS; break; +#else + if (rc_open != NULL) *rc_open = TREXIO_BACK_END_MISSING; + return NULL; #endif /* case TREXIO_JSON: @@ -1015,10 +1023,12 @@ trexio_close (trexio_t* file) rc = trexio_text_deinit(file); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_deinit(file); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1042,10 +1052,12 @@ trexio_close (trexio_t* file) rc = trexio_text_unlock(file); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = TREXIO_SUCCESS; break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1228,10 +1240,12 @@ trexio_read_$group_num$_64 (trexio_t* const file, $group_num_dtype_double$* cons return trexio_text_read_$group_num$(file, num); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_read_$group_num$(file, num); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1258,10 +1272,12 @@ trexio_write_$group_num$_64 (trexio_t* const file, const $group_num_dtype_double return trexio_text_write_$group_num$(file, num); break; + case TREXIO_HDF5: #ifdef HAVE_HDF5 - case TREXIO_HDF5: return trexio_hdf5_write_$group_num$(file, num); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1292,10 +1308,12 @@ trexio_read_$group_num$_32 (trexio_t* const file, $group_num_dtype_single$* cons rc = trexio_text_read_$group_num$(file, &num_64); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_read_$group_num$(file, &num_64); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1326,10 +1344,12 @@ trexio_write_$group_num$_32 (trexio_t* const file, const $group_num_dtype_single return trexio_text_write_$group_num$(file, ($group_num_dtype_double$) num); break; + case TREXIO_HDF5: #ifdef HAVE_HDF5 - case TREXIO_HDF5: return trexio_hdf5_write_$group_num$(file, ($group_num_dtype_double$) num); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1375,10 +1395,12 @@ trexio_has_$group_num$ (trexio_t* const file) return trexio_text_has_$group_num$(file); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_has_$group_num$(file); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1620,10 +1642,12 @@ trexio_read_$group_dset$_64 (trexio_t* const file, $group_dset_dtype_double$* co rc = trexio_text_read_$group_dset$(file, $group_dset$, rank, dims); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_read_$group_dset$(file, $group_dset$, rank, dims); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1696,10 +1720,12 @@ trexio_write_$group_dset$_64 (trexio_t* const file, const $group_dset_dtype_doub rc = trexio_text_write_$group_dset$(file, $group_dset$_p, rank, dims); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_write_$group_dset$(file, $group_dset$_p, rank, dims); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1758,10 +1784,12 @@ trexio_read_$group_dset$_32 (trexio_t* const file, $group_dset_dtype_single$* co rc = trexio_text_read_$group_dset$(file, $group_dset$_64, rank, dims); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_read_$group_dset$(file, $group_dset$_64, rank, dims); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -1839,10 +1867,12 @@ trexio_write_$group_dset$_32 (trexio_t* const file, const $group_dset_dtype_sing rc = trexio_text_write_$group_dset$(file, $group_dset$_64, rank, dims); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_write_$group_dset$(file, $group_dset$_64, rank, dims); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -2005,10 +2035,12 @@ trexio_has_$group_dset$ (trexio_t* const file) return trexio_text_has_$group_dset$(file); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_has_$group_dset$(file); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -2452,10 +2484,12 @@ trexio_read_$group_dset$_low (trexio_t* const file, char* dset_out, const int32_ return trexio_text_read_$group_dset$(file, dset_out, rank, dims, (uint32_t) max_str_len); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_read_$group_dset$(file, dset_out, rank, dims, (uint32_t) max_str_len); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -2578,10 +2612,12 @@ trexio_write_$group_dset$_low (trexio_t* const file, const char* dset_in, const rc = trexio_text_write_$group_dset$(file, (const char**) dset_str, rank, dims); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 rc = trexio_hdf5_write_$group_dset$(file, (const char**) dset_str, rank, dims); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -2648,10 +2684,12 @@ trexio_has_$group_dset$ (trexio_t* const file) return trexio_text_has_$group_dset$(file); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_has_$group_dset$(file); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -2899,10 +2937,12 @@ trexio_read_$group_str$ (trexio_t* const file, char* const str_out, const int32_ return trexio_text_read_$group_str$(file, str_out, (uint32_t) max_str_len); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_read_$group_str$(file, str_out, (uint32_t) max_str_len); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -2934,10 +2974,12 @@ trexio_write_$group_str$ (trexio_t* const file, const char* str, const int32_t m return trexio_text_write_$group_str$(file, str); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_write_$group_str$(file, str); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: @@ -2965,10 +3007,12 @@ trexio_has_$group_str$ (trexio_t* const file) return trexio_text_has_$group_str$(file); break; -#ifdef HAVE_HDF5 case TREXIO_HDF5: +#ifdef HAVE_HDF5 return trexio_hdf5_has_$group_str$(file); break; +#else + return TREXIO_BACK_END_MISSING; #endif /* case TREXIO_JSON: