github.com/astrogo/cfitsio@v0.1.0/error.go (about) 1 package cfitsio 2 3 // #include <stdlib.h> 4 // #include <string.h> 5 // #include "go-cfitsio.h" 6 // #include "go-cfitsio-utils.h" 7 import "C" 8 9 import ( 10 "fmt" 11 "unsafe" 12 ) 13 14 // Error is a CFITSIO error status code 15 type Error int 16 17 func (err Error) Error() string { 18 c_err := C.CStringN(C.FLEN_ERRMSG) 19 defer C.free(unsafe.Pointer(c_err)) 20 C.ffgerr(C.int(err), c_err) 21 return fmt.Sprintf("cfitsio (err=%v) %q", int(err), C.GoString(c_err)) 22 } 23 24 // Return a descriptive text string (30 char max.) corresponding to a CFITSIO error status code. 25 func to_err(sc C.int) error { 26 if sc == 0 { 27 return nil 28 } 29 return Error(int(sc)) 30 } 31 32 var ( 33 CREATE_DISK_FILE Error = C.CREATE_DISK_FILE 34 OPEN_DISK_FILE Error = C.OPEN_DISK_FILE 35 SKIP_TABLE Error = C.SKIP_TABLE 36 SKIP_IMAGE Error = C.SKIP_IMAGE 37 SKIP_NULL_PRIMARY Error = C.SKIP_NULL_PRIMARY 38 USE_MEM_BUFF Error = C.USE_MEM_BUFF 39 OVERFLOW_ERR Error = C.OVERFLOW_ERR 40 PREPEND_PRIMARY Error = C.PREPEND_PRIMARY 41 SAME_FILE Error = C.SAME_FILE 42 TOO_MANY_FILES Error = C.TOO_MANY_FILES 43 FILE_NOT_OPENED Error = C.FILE_NOT_OPENED 44 FILE_NOT_CREATED Error = C.FILE_NOT_CREATED 45 WRITE_ERROR Error = C.WRITE_ERROR 46 END_OF_FILE Error = C.END_OF_FILE 47 READ_ERROR Error = C.READ_ERROR 48 FILE_NOT_CLOSED Error = C.FILE_NOT_CLOSED 49 ARRAY_TOO_BIG Error = C.ARRAY_TOO_BIG 50 READONLY_FILE Error = C.READONLY_FILE 51 MEMORY_ALLOCATION Error = C.MEMORY_ALLOCATION 52 BAD_FILEPTR Error = C.BAD_FILEPTR 53 NULL_INPUT_PTR Error = C.NULL_INPUT_PTR 54 SEEK_ERROR Error = C.SEEK_ERROR 55 56 BAD_URL_PREFIX Error = C.BAD_URL_PREFIX 57 TOO_MANY_DRIVERS Error = C.TOO_MANY_DRIVERS 58 DRIVER_INIT_FAILED Error = C.DRIVER_INIT_FAILED 59 NO_MATCHING_DRIVER Error = C.NO_MATCHING_DRIVER 60 URL_PARSE_ERROR Error = C.URL_PARSE_ERROR 61 RANGE_PARSE_ERROR Error = C.RANGE_PARSE_ERROR 62 63 SHARED_ERRBASE Error = C.SHARED_ERRBASE 64 SHARED_BADARG Error = C.SHARED_BADARG 65 SHARED_NULPTR Error = C.SHARED_NULPTR 66 SHARED_TABFULL Error = C.SHARED_TABFULL 67 SHARED_NOTINIT Error = C.SHARED_NOTINIT 68 SHARED_IPCERR Error = C.SHARED_IPCERR 69 SHARED_NOMEM Error = C.SHARED_NOMEM 70 SHARED_AGAIN Error = C.SHARED_AGAIN 71 SHARED_NOFILE Error = C.SHARED_NOFILE 72 SHARED_NORESIZE Error = C.SHARED_NORESIZE 73 74 HEADER_NOT_EMPTY Error = C.HEADER_NOT_EMPTY 75 KEY_NO_EXIST Error = C.KEY_NO_EXIST 76 KEY_OUT_BOUNDS Error = C.KEY_OUT_BOUNDS 77 VALUE_UNDEFINED Error = C.VALUE_UNDEFINED 78 NO_QUOTE Error = C.NO_QUOTE 79 BAD_INDEX_KEY Error = C.BAD_INDEX_KEY 80 BAD_KEYCHAR Error = C.BAD_KEYCHAR 81 BAD_ORDER Error = C.BAD_ORDER 82 NOT_POS_INT Error = C.NOT_POS_INT 83 NO_END Error = C.NO_END 84 BAD_BITPIX Error = C.BAD_BITPIX 85 BAD_NAXIS Error = C.BAD_NAXIS 86 BAD_NAXES Error = C.BAD_NAXES 87 BAD_PCOUNT Error = C.BAD_PCOUNT 88 BAD_GCOUNT Error = C.BAD_GCOUNT 89 BAD_TFIELDS Error = C.BAD_TFIELDS 90 NEG_WIDTH Error = C.NEG_WIDTH 91 NEG_ROWS Error = C.NEG_ROWS 92 COL_NOT_FOUND Error = C.COL_NOT_FOUND 93 BAD_SIMPLE Error = C.BAD_SIMPLE 94 NO_SIMPLE Error = C.NO_SIMPLE 95 NO_BITPIX Error = C.NO_BITPIX 96 NO_NAXIS Error = C.NO_NAXIS 97 NO_NAXES Error = C.NO_NAXES 98 NO_XTENSION Error = C.NO_XTENSION 99 NOT_ATABLE Error = C.NOT_ATABLE 100 NOT_BTABLE Error = C.NOT_BTABLE 101 NO_PCOUNT Error = C.NO_PCOUNT 102 NO_GCOUNT Error = C.NO_GCOUNT 103 NO_TFIELDS Error = C.NO_TFIELDS 104 NO_TBCOL Error = C.NO_TBCOL 105 NO_TFORM Error = C.NO_TFORM 106 NOT_IMAGE Error = C.NOT_IMAGE 107 BAD_TBCOL Error = C.BAD_TBCOL 108 NOT_TABLE Error = C.NOT_TABLE 109 COL_TOO_WIDE Error = C.COL_TOO_WIDE 110 COL_NOT_UNIQUE Error = C.COL_NOT_UNIQUE 111 BAD_ROW_WIDTH Error = C.BAD_ROW_WIDTH 112 UNKNOWN_EXT Error = C.UNKNOWN_EXT 113 UNKNOWN_REC Error = C.UNKNOWN_REC 114 END_JUNK Error = C.END_JUNK 115 BAD_HEADER_FILL Error = C.BAD_HEADER_FILL 116 BAD_DATA_FILL Error = C.BAD_DATA_FILL 117 BAD_TFORM Error = C.BAD_TFORM 118 BAD_TFORM_DTYPE Error = C.BAD_TFORM_DTYPE 119 BAD_TDIM Error = C.BAD_TDIM 120 BAD_HEAP_PTR Error = C.BAD_HEAP_PTR 121 122 BAD_HDU_NUM Error = C.BAD_HDU_NUM 123 BAD_COL_NUM Error = C.BAD_COL_NUM 124 NEG_FILE_POS Error = C.NEG_FILE_POS 125 NEG_BYTES Error = C.NEG_BYTES 126 BAD_ROW_NUM Error = C.BAD_ROW_NUM 127 BAD_ELEM_NUM Error = C.BAD_ELEM_NUM 128 NOT_ASCII_COL Error = C.NOT_ASCII_COL 129 NOT_LOGICAL_COL Error = C.NOT_LOGICAL_COL 130 BAD_ATABLE_FORMAT Error = C.BAD_ATABLE_FORMAT 131 BAD_BTABLE_FORMAT Error = C.BAD_BTABLE_FORMAT 132 NO_NULL Error = C.NO_NULL 133 NOT_VARI_LEN Error = C.NOT_VARI_LEN 134 BAD_DIMEN Error = C.BAD_DIMEN 135 BAD_PIX_NUM Error = C.BAD_PIX_NUM 136 ZERO_SCALE Error = C.ZERO_SCALE 137 NEG_AXIS Error = C.NEG_AXIS 138 139 NOT_GROUP_TABLE Error = C.NOT_GROUP_TABLE 140 HDU_ALREADY_MEMBER Error = C.HDU_ALREADY_MEMBER 141 MEMBER_NOT_FOUND Error = C.MEMBER_NOT_FOUND 142 GROUP_NOT_FOUND Error = C.GROUP_NOT_FOUND 143 BAD_GROUP_ID Error = C.BAD_GROUP_ID 144 TOO_MANY_HDUS_TRACKED Error = C.TOO_MANY_HDUS_TRACKED 145 HDU_ALREADY_TRACKED Error = C.HDU_ALREADY_TRACKED 146 BAD_OPTION Error = C.BAD_OPTION 147 IDENTICAL_POINTERS Error = C.IDENTICAL_POINTERS 148 BAD_GROUP_ATTACH Error = C.BAD_GROUP_ATTACH 149 BAD_GROUP_DETACH Error = C.BAD_GROUP_DETACH 150 151 BAD_I2C Error = C.BAD_I2C 152 BAD_F2C Error = C.BAD_F2C 153 BAD_INTKEY Error = C.BAD_INTKEY 154 BAD_LOGICALKEY Error = C.BAD_LOGICALKEY 155 BAD_FLOATKEY Error = C.BAD_FLOATKEY 156 BAD_DOUBLEKEY Error = C.BAD_DOUBLEKEY 157 BAD_C2I Error = C.BAD_C2I 158 BAD_C2F Error = C.BAD_C2F 159 BAD_C2D Error = C.BAD_C2D 160 BAD_DATATYPE Error = C.BAD_DATATYPE 161 BAD_DECIM Error = C.BAD_DECIM 162 NUM_OVERFLOW Error = C.NUM_OVERFLOW 163 164 DATA_COMPRESSION_ERR Error = C.DATA_COMPRESSION_ERR 165 DATA_DECOMPRESSION_ERR Error = C.DATA_DECOMPRESSION_ERR 166 NO_COMPRESSED_TILE Error = C.NO_COMPRESSED_TILE 167 168 BAD_DATE Error = C.BAD_DATE 169 170 PARSE_SYNTAX_ERR Error = C.PARSE_SYNTAX_ERR 171 PARSE_BAD_TYPE Error = C.PARSE_BAD_TYPE 172 PARSE_LRG_VECTOR Error = C.PARSE_LRG_VECTOR 173 PARSE_NO_OUTPUT Error = C.PARSE_NO_OUTPUT 174 PARSE_BAD_COL Error = C.PARSE_BAD_COL 175 PARSE_BAD_OUTPUT Error = C.PARSE_BAD_OUTPUT 176 177 ANGLE_TOO_BIG Error = C.ANGLE_TOO_BIG 178 BAD_WCS_VAL Error = C.BAD_WCS_VAL 179 WCS_ERROR Error = C.WCS_ERROR 180 BAD_WCS_PROJ Error = C.BAD_WCS_PROJ 181 NO_WCS_KEY Error = C.NO_WCS_KEY 182 APPROX_WCS_KEY Error = C.APPROX_WCS_KEY 183 184 NO_CLOSE_ERROR Error = C.NO_CLOSE_ERROR 185 186 /*------- following error codes are used in the grparser.c file -----------*/ 187 NGP_ERRBASE Error = C.NGP_ERRBASE 188 NGP_OK Error = C.NGP_OK 189 NGP_NO_MEMORY Error = C.NGP_NO_MEMORY 190 NGP_READ_ERR Error = C.NGP_READ_ERR 191 NGP_NUL_PTR Error = C.NGP_NUL_PTR 192 NGP_EMPTY_CURLINE Error = C.NGP_EMPTY_CURLINE 193 NGP_UNREAD_QUEUE_FULL Error = C.NGP_UNREAD_QUEUE_FULL 194 NGP_INC_NESTING Error = C.NGP_INC_NESTING 195 NGP_ERR_FOPEN Error = C.NGP_ERR_FOPEN 196 NGP_EOF Error = C.NGP_EOF 197 NGP_BAD_ARG Error = C.NGP_BAD_ARG 198 NGP_TOKEN_NOT_EXPECT Error = C.NGP_TOKEN_NOT_EXPECT 199 ) 200 201 // eof