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