mirror of
https://github.com/TREX-CoE/trexio.git
synced 2024-12-23 04:43:57 +01:00
add error handling for an attempt to overwrite something
This commit is contained in:
parent
6d1e9df1a3
commit
0b5136f14c
@ -116,7 +116,7 @@ typedef int32_t trexio_exit_code;
|
|||||||
|
|
||||||
#+NAME: table-exit-codes
|
#+NAME: table-exit-codes
|
||||||
| Macro | Code | Description |
|
| Macro | Code | Description |
|
||||||
|-----------------------------+------+---------------------------|
|
|------------------------------+------+----------------------------------------|
|
||||||
| ~TREXIO_FAILURE~ | -1 | 'Unknown failure' |
|
| ~TREXIO_FAILURE~ | -1 | 'Unknown failure' |
|
||||||
| ~TREXIO_SUCCESS~ | 0 | 'Success' |
|
| ~TREXIO_SUCCESS~ | 0 | 'Success' |
|
||||||
| ~TREXIO_INVALID_ARG_1~ | 1 | 'Invalid argument 1' |
|
| ~TREXIO_INVALID_ARG_1~ | 1 | 'Invalid argument 1' |
|
||||||
@ -131,15 +131,16 @@ typedef int32_t trexio_exit_code;
|
|||||||
| ~TREXIO_ALLOCATION_FAILED~ | 10 | 'Allocation failed' |
|
| ~TREXIO_ALLOCATION_FAILED~ | 10 | 'Allocation failed' |
|
||||||
| ~TREXIO_HAS_NOT~ | 11 | 'Element absent' |
|
| ~TREXIO_HAS_NOT~ | 11 | 'Element absent' |
|
||||||
| ~TREXIO_INVALID_NUM~ | 12 | 'Invalid dimensions' |
|
| ~TREXIO_INVALID_NUM~ | 12 | 'Invalid dimensions' |
|
||||||
| ~TREXIO_NUM_ALREADY_EXISTS~ | 13 | 'Variable already exists' |
|
| ~TREXIO_NUM_ALREADY_EXISTS~ | 13 | 'Dimensioning variable already exists' |
|
||||||
| ~TREXIO_OPEN_ERROR~ | 14 | 'Error opening file' |
|
| ~TREXIO_DSET_ALREADY_EXISTS~ | 14 | 'Dataset already exists' |
|
||||||
| ~TREXIO_LOCK_ERROR~ | 15 | 'Error locking file' |
|
| ~TREXIO_OPEN_ERROR~ | 15 | 'Error opening file' |
|
||||||
| ~TREXIO_UNLOCK_ERROR~ | 16 | 'Error unlocking file' |
|
| ~TREXIO_LOCK_ERROR~ | 16 | 'Error locking file' |
|
||||||
| ~TREXIO_FILE_ERROR~ | 17 | 'Invalid file handle' |
|
| ~TREXIO_UNLOCK_ERROR~ | 17 | 'Error unlocking file' |
|
||||||
| ~TREXIO_GROUP_READ_ERROR~ | 18 | 'Error reading group' |
|
| ~TREXIO_FILE_ERROR~ | 18 | 'Invalid file handle' |
|
||||||
| ~TREXIO_GROUP_WRITE_ERROR~ | 19 | 'Error writing group' |
|
| ~TREXIO_GROUP_READ_ERROR~ | 19 | 'Error reading group' |
|
||||||
| ~TREXIO_ELEM_READ_ERROR~ | 20 | 'Error reading element' |
|
| ~TREXIO_GROUP_WRITE_ERROR~ | 20 | 'Error writing group' |
|
||||||
| ~TREXIO_ELEM_WRITE_ERROR~ | 21 | 'Error writing element' |
|
| ~TREXIO_ELEM_READ_ERROR~ | 21 | 'Error reading element' |
|
||||||
|
| ~TREXIO_ELEM_WRITE_ERROR~ | 22 | 'Error writing element' |
|
||||||
|
|
||||||
# We need to force Emacs not to indent the Python code:
|
# We need to force Emacs not to indent the Python code:
|
||||||
# -*- org-src-preserve-indentation: t
|
# -*- org-src-preserve-indentation: t
|
||||||
@ -186,14 +187,15 @@ return '\n'.join(result)
|
|||||||
#define TREXIO_HAS_NOT ((trexio_exit_code) 11)
|
#define TREXIO_HAS_NOT ((trexio_exit_code) 11)
|
||||||
#define TREXIO_INVALID_NUM ((trexio_exit_code) 12)
|
#define TREXIO_INVALID_NUM ((trexio_exit_code) 12)
|
||||||
#define TREXIO_NUM_ALREADY_EXISTS ((trexio_exit_code) 13)
|
#define TREXIO_NUM_ALREADY_EXISTS ((trexio_exit_code) 13)
|
||||||
#define TREXIO_OPEN_ERROR ((trexio_exit_code) 14)
|
#define TREXIO_DSET_ALREADY_EXISTS ((trexio_exit_code) 14)
|
||||||
#define TREXIO_LOCK_ERROR ((trexio_exit_code) 15)
|
#define TREXIO_OPEN_ERROR ((trexio_exit_code) 15)
|
||||||
#define TREXIO_UNLOCK_ERROR ((trexio_exit_code) 16)
|
#define TREXIO_LOCK_ERROR ((trexio_exit_code) 16)
|
||||||
#define TREXIO_FILE_ERROR ((trexio_exit_code) 17)
|
#define TREXIO_UNLOCK_ERROR ((trexio_exit_code) 17)
|
||||||
#define TREXIO_GROUP_READ_ERROR ((trexio_exit_code) 18)
|
#define TREXIO_FILE_ERROR ((trexio_exit_code) 18)
|
||||||
#define TREXIO_GROUP_WRITE_ERROR ((trexio_exit_code) 19)
|
#define TREXIO_GROUP_READ_ERROR ((trexio_exit_code) 19)
|
||||||
#define TREXIO_ELEM_READ_ERROR ((trexio_exit_code) 20)
|
#define TREXIO_GROUP_WRITE_ERROR ((trexio_exit_code) 20)
|
||||||
#define TREXIO_ELEM_WRITE_ERROR ((trexio_exit_code) 21)
|
#define TREXIO_ELEM_READ_ERROR ((trexio_exit_code) 21)
|
||||||
|
#define TREXIO_ELEM_WRITE_ERROR ((trexio_exit_code) 22)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src f90 :tangle prefix_fortran.f90 :exports none
|
#+begin_src f90 :tangle prefix_fortran.f90 :exports none
|
||||||
@ -212,14 +214,15 @@ return '\n'.join(result)
|
|||||||
integer(trexio_exit_code), parameter :: TREXIO_HAS_NOT = 11
|
integer(trexio_exit_code), parameter :: TREXIO_HAS_NOT = 11
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_INVALID_NUM = 12
|
integer(trexio_exit_code), parameter :: TREXIO_INVALID_NUM = 12
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_NUM_ALREADY_EXISTS = 13
|
integer(trexio_exit_code), parameter :: TREXIO_NUM_ALREADY_EXISTS = 13
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_OPEN_ERROR = 14
|
integer(trexio_exit_code), parameter :: TREXIO_DSET_ALREADY_EXISTS = 14
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_LOCK_ERROR = 15
|
integer(trexio_exit_code), parameter :: TREXIO_OPEN_ERROR = 15
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_UNLOCK_ERROR = 16
|
integer(trexio_exit_code), parameter :: TREXIO_LOCK_ERROR = 16
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_FILE_ERROR = 17
|
integer(trexio_exit_code), parameter :: TREXIO_UNLOCK_ERROR = 17
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_GROUP_READ_ERROR = 18
|
integer(trexio_exit_code), parameter :: TREXIO_FILE_ERROR = 18
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_GROUP_WRITE_ERROR = 19
|
integer(trexio_exit_code), parameter :: TREXIO_GROUP_READ_ERROR = 19
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_ELEM_READ_ERROR = 20
|
integer(trexio_exit_code), parameter :: TREXIO_GROUP_WRITE_ERROR = 20
|
||||||
integer(trexio_exit_code), parameter :: TREXIO_ELEM_WRITE_ERROR = 21
|
integer(trexio_exit_code), parameter :: TREXIO_ELEM_READ_ERROR = 21
|
||||||
|
integer(trexio_exit_code), parameter :: TREXIO_ELEM_WRITE_ERROR = 22
|
||||||
#+end_src
|
#+end_src
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
@ -845,6 +848,7 @@ trexio_write_$group_num$_64 (trexio_t* const file, const int64_t num)
|
|||||||
{
|
{
|
||||||
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
||||||
if (num < 0 ) return TREXIO_INVALID_ARG_2;
|
if (num < 0 ) return TREXIO_INVALID_ARG_2;
|
||||||
|
if (trexio_has_$group_num$(file) == TREXIO_SUCCESS) return TREXIO_NUM_ALREADY_EXISTS;
|
||||||
|
|
||||||
trexio_exit_code rc = TREXIO_GROUP_WRITE_ERROR;
|
trexio_exit_code rc = TREXIO_GROUP_WRITE_ERROR;
|
||||||
|
|
||||||
@ -908,6 +912,7 @@ trexio_write_$group_num$_32 (trexio_t* const file, const int32_t num)
|
|||||||
|
|
||||||
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
||||||
if (num < 0 ) return TREXIO_INVALID_ARG_2;
|
if (num < 0 ) return TREXIO_INVALID_ARG_2;
|
||||||
|
if (trexio_has_$group_num$(file) == TREXIO_SUCCESS) return TREXIO_NUM_ALREADY_EXISTS;
|
||||||
|
|
||||||
trexio_exit_code rc = TREXIO_GROUP_WRITE_ERROR;
|
trexio_exit_code rc = TREXIO_GROUP_WRITE_ERROR;
|
||||||
|
|
||||||
@ -1131,6 +1136,7 @@ trexio_write_$group_dset$_64 (trexio_t* const file, const $group_dset_dtype_doub
|
|||||||
|
|
||||||
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
||||||
if ($group_dset$ == NULL) return TREXIO_INVALID_ARG_2;
|
if ($group_dset$ == NULL) return TREXIO_INVALID_ARG_2;
|
||||||
|
if (trexio_has_$group_dset$(file) == TREXIO_SUCCESS) return TREXIO_DSET_ALREADY_EXISTS;
|
||||||
|
|
||||||
trexio_exit_code rc;
|
trexio_exit_code rc;
|
||||||
int64_t $group_dset_dim$ = 0;
|
int64_t $group_dset_dim$ = 0;
|
||||||
@ -1232,6 +1238,7 @@ trexio_write_$group_dset$_32 (trexio_t* const file, const $group_dset_dtype_sing
|
|||||||
|
|
||||||
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
if (file == NULL) return TREXIO_INVALID_ARG_1;
|
||||||
if ($group_dset$ == NULL) return TREXIO_INVALID_ARG_2;
|
if ($group_dset$ == NULL) return TREXIO_INVALID_ARG_2;
|
||||||
|
if (trexio_has_$group_dset$(file) == TREXIO_SUCCESS) return TREXIO_DSET_ALREADY_EXISTS;
|
||||||
|
|
||||||
trexio_exit_code rc;
|
trexio_exit_code rc;
|
||||||
int64_t $group_dset_dim$ = 0;
|
int64_t $group_dset_dim$ = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user