Ion C
C library for Ion
Loading...
Searching...
No Matches
ion_types.h File Reference
#include "ion_errors.h"
#include <stdint.h>
#include <decNumber/decQuad.h>
#include <decNumber/decNumber.h>

Go to the source code of this file.

Data Structures

struct  _ion_user_stream
 

Macros

#define GLOBAL   extern
 
#define INITTO(x)   /* nothing */
 
#define NULL   ((void *)0)
 
#define TRUE   1
 
#define FALSE   0
 
#define MAX_INT32   0x7FFFFFFF
 
#define MIN_INT32   -0x7FFFFFFF-1
 
#define MAX_INT64   0x7FFFFFFFFFFFFFFFLL
 
#define MIN_INT64   -0x7FFFFFFFFFFFFFFFLL-1
 
#define HIGH_BIT_INT64   (((uint64_t)(1)) << 63)
 
#define ION_TYPE_INT(x)   ((intptr_t) (x))
 
#define tid_none   ((ION_TYPE)(tid_none_INT))
 
#define tid_EOF   ((ION_TYPE)(tid_EOF_INT))
 
#define tid_NULL   ((ION_TYPE) tid_NULL_INT)
 
#define tid_BOOL   ((ION_TYPE) tid_BOOL_INT)
 
#define tid_INT   ((ION_TYPE) tid_INT_INT)
 
#define tid_FLOAT   ((ION_TYPE) tid_FLOAT_INT)
 
#define tid_DECIMAL   ((ION_TYPE) tid_DECIMAL_INT)
 
#define tid_TIMESTAMP   ((ION_TYPE) tid_TIMESTAMP_INT)
 
#define tid_SYMBOL   ((ION_TYPE) tid_SYMBOL_INT)
 
#define tid_STRING   ((ION_TYPE) tid_STRING_INT)
 
#define tid_CLOB   ((ION_TYPE) tid_CLOB_INT)
 
#define tid_BLOB   ((ION_TYPE) tid_BLOB_INT)
 
#define tid_LIST   ((ION_TYPE) tid_LIST_INT)
 
#define tid_SEXP   ((ION_TYPE) tid_SEXP_INT)
 
#define tid_STRUCT   ((ION_TYPE) tid_STRUCT_INT)
 
#define tid_DATAGRAM   ((ION_TYPE) tid_DATAGRAM_INT)
 
#define tid_none_INT   -0x200
 
#define tid_EOF_INT   -0x100
 
#define tid_NULL_INT   0x000
 
#define tid_BOOL_INT   0x100
 
#define tid_INT_INT   0x200
 
#define tid_FLOAT_INT   0x400
 
#define tid_DECIMAL_INT   0x500
 
#define tid_TIMESTAMP_INT   0x600
 
#define tid_SYMBOL_INT   0x700
 
#define tid_STRING_INT   0x800
 
#define tid_CLOB_INT   0x900
 
#define tid_BLOB_INT   0xA00
 
#define tid_LIST_INT   0xB00
 
#define tid_SEXP_INT   0xC00
 
#define tid_STRUCT_INT   0xD00
 
#define tid_DATAGRAM_INT   0xF00
 
#define MAX_SIZE   INT32_MAX
 
#define ION_STREAM_DECL
 

Typedefs

typedef struct ion_type * ION_TYPE
 
typedef int32_t SID
 
typedef int32_t SIZE
 
typedef uint8_t BYTE
 
typedef int BOOL
 
typedef struct _ion_symbol_table ION_SYMBOL_TABLE
 
typedef struct _ion_catalog ION_CATALOG
 
typedef struct _ion_string ION_STRING
 
typedef struct _ion_symbol ION_SYMBOL
 
typedef struct _ion_symbol_table_import_descriptor ION_SYMBOL_TABLE_IMPORT_DESCRIPTOR
 
typedef struct _ion_symbol_table_import ION_SYMBOL_TABLE_IMPORT
 
typedef struct _ion_reader ION_READER
 
typedef struct _ion_writer ION_WRITER
 
typedef struct _ion_int ION_INT
 
typedef struct _ion_decimal ION_DECIMAL
 
typedef struct _ion_timestamp ION_TIMESTAMP
 
typedef struct _ion_collection ION_COLLECTION
 
typedef struct _ion_stream ION_STREAM
 
typedef iERR(* ION_STREAM_HANDLER) (struct _ion_user_stream *pstream)
 
typedef ION_STRINGiSTRING
 
typedef ION_SYMBOLiSYMBOL
 
typedef ION_SYMBOL_TABLE_IMPORT * iIMPORT
 
typedef ION_SYMBOL_TABLE * iSYMTAB
 
typedef ION_CATALOG * iCATALOG
 
typedef ION_STREAM * iSTREAM
 
typedef ION_TIMESTAMPiTIMESTAMP
 
typedef void * hOWNER
 
typedef ION_READER * hREADER
 
typedef ION_WRITER * hWRITER
 
typedef ION_SYMBOL_TABLE * hSYMTAB
 
typedef ION_CATALOG * hCATALOG
 

Macro Definition Documentation

◆ GLOBAL

#define GLOBAL   extern

Public shared types for Ion implementation. This includes typedef's for various platforms and int sizes and other associated configuration

◆ tid_EOF

#define tid_EOF   ((ION_TYPE)(tid_EOF_INT))

Stands for both End of File and End of Container, unfortunately.

◆ tid_none

#define tid_none   ((ION_TYPE)(tid_none_INT))

Current value type not known (has not been checked)

◆ tid_NULL

#define tid_NULL   ((ION_TYPE) tid_NULL_INT)

Ion Value Type NULL.

Typedef Documentation

◆ ION_STRING

typedef struct _ion_string ION_STRING

An Ion String.

See also
_ion_string

◆ ION_TYPE

typedef struct ion_type* ION_TYPE

Strong typed enum over pointer type.