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