#include <H5Epublic.h>
#include <bindings.cmacros.h>

BC_INLINE_(H5E_ERR_CLS,             hid_t)

// TODO: these are auto-generated apparently - find out whether they change
//       often enough that it's worth auto-generating the bindings as well
BC_INLINE_(H5E_DATASET,             hid_t)
BC_INLINE_(H5E_FUNC,                hid_t)
BC_INLINE_(H5E_STORAGE,             hid_t)
BC_INLINE_(H5E_FILE,                hid_t)
BC_INLINE_(H5E_SOHM,                hid_t)
BC_INLINE_(H5E_SYM,                 hid_t)
#if H5_VERSION_GE(1,8,11)
BC_INLINE_(H5E_PLUGIN,              hid_t)
#endif /* H5_VERSION_GE */
BC_INLINE_(H5E_VFL,                 hid_t)
BC_INLINE_(H5E_INTERNAL,            hid_t)
BC_INLINE_(H5E_BTREE,               hid_t)
BC_INLINE_(H5E_REFERENCE,           hid_t)
BC_INLINE_(H5E_DATASPACE,           hid_t)
BC_INLINE_(H5E_RESOURCE,            hid_t)
BC_INLINE_(H5E_PLIST,               hid_t)
BC_INLINE_(H5E_LINK,                hid_t)
BC_INLINE_(H5E_DATATYPE,            hid_t)
BC_INLINE_(H5E_RS,                  hid_t)
BC_INLINE_(H5E_HEAP,                hid_t)
BC_INLINE_(H5E_OHDR,                hid_t)
BC_INLINE_(H5E_ATOM,                hid_t)
BC_INLINE_(H5E_ATTR,                hid_t)
BC_INLINE_(H5E_NONE_MAJOR,          hid_t)
BC_INLINE_(H5E_IO,                  hid_t)
BC_INLINE_(H5E_SLIST,               hid_t)
BC_INLINE_(H5E_EFL,                 hid_t)
BC_INLINE_(H5E_TST,                 hid_t)
BC_INLINE_(H5E_ARGS,                hid_t)
BC_INLINE_(H5E_ERROR,               hid_t)
BC_INLINE_(H5E_PLINE,               hid_t)
BC_INLINE_(H5E_FSPACE,              hid_t)
BC_INLINE_(H5E_CACHE,               hid_t)

BC_INLINE_(H5E_SEEKERROR,           hid_t)
BC_INLINE_(H5E_READERROR,           hid_t)
BC_INLINE_(H5E_WRITEERROR,          hid_t)
BC_INLINE_(H5E_CLOSEERROR,          hid_t)
BC_INLINE_(H5E_OVERFLOW,            hid_t)
BC_INLINE_(H5E_FCNTL,               hid_t)

BC_INLINE_(H5E_NOSPACE,             hid_t)
BC_INLINE_(H5E_CANTALLOC,           hid_t)
BC_INLINE_(H5E_CANTCOPY,            hid_t)
BC_INLINE_(H5E_CANTFREE,            hid_t)
BC_INLINE_(H5E_ALREADYEXISTS,       hid_t)
BC_INLINE_(H5E_CANTLOCK,            hid_t)
BC_INLINE_(H5E_CANTUNLOCK,          hid_t)
BC_INLINE_(H5E_CANTGC,              hid_t)
BC_INLINE_(H5E_CANTGETSIZE,         hid_t)
BC_INLINE_(H5E_OBJOPEN,             hid_t)

BC_INLINE_(H5E_CANTRESTORE,         hid_t)
BC_INLINE_(H5E_CANTCOMPUTE,         hid_t)
BC_INLINE_(H5E_CANTEXTEND,          hid_t)
BC_INLINE_(H5E_CANTATTACH,          hid_t)
BC_INLINE_(H5E_CANTUPDATE,          hid_t)
BC_INLINE_(H5E_CANTOPERATE,         hid_t)

BC_INLINE_(H5E_CANTINIT,            hid_t)
BC_INLINE_(H5E_ALREADYINIT,         hid_t)
BC_INLINE_(H5E_CANTRELEASE,         hid_t)

BC_INLINE_(H5E_CANTGET,             hid_t)
BC_INLINE_(H5E_CANTSET,             hid_t)
BC_INLINE_(H5E_DUPCLASS,            hid_t)

#if H5_VERSION_GE(1,8,9)
BC_INLINE_(H5E_SETDISALLOWED,       hid_t)
#endif

BC_INLINE_(H5E_CANTMERGE,           hid_t)
BC_INLINE_(H5E_CANTREVIVE,          hid_t)
BC_INLINE_(H5E_CANTSHRINK,          hid_t)

BC_INLINE_(H5E_LINKCOUNT,           hid_t)
BC_INLINE_(H5E_VERSION,             hid_t)
BC_INLINE_(H5E_ALIGNMENT,           hid_t)
BC_INLINE_(H5E_BADMESG,             hid_t)
BC_INLINE_(H5E_CANTDELETE,          hid_t)
BC_INLINE_(H5E_BADITER,             hid_t)
BC_INLINE_(H5E_CANTPACK,            hid_t)
BC_INLINE_(H5E_CANTRESET,           hid_t)
BC_INLINE_(H5E_CANTRENAME,          hid_t)

BC_INLINE_(H5E_SYSERRSTR,           hid_t)

BC_INLINE_(H5E_NOFILTER,            hid_t)
BC_INLINE_(H5E_CALLBACK,            hid_t)
BC_INLINE_(H5E_CANAPPLY,            hid_t)
BC_INLINE_(H5E_SETLOCAL,            hid_t)
BC_INLINE_(H5E_NOENCODER,           hid_t)
BC_INLINE_(H5E_CANTFILTER,          hid_t)

BC_INLINE_(H5E_CANTOPENOBJ,         hid_t)
BC_INLINE_(H5E_CANTCLOSEOBJ,        hid_t)
BC_INLINE_(H5E_COMPLEN,             hid_t)
BC_INLINE_(H5E_PATH,                hid_t)

BC_INLINE_(H5E_NONE_MINOR,          hid_t)

#if H5_VERSION_GE(1,8,11)
BC_INLINE_(H5E_OPENERROR,           hid_t)
#endif

BC_INLINE_(H5E_FILEEXISTS,          hid_t)
BC_INLINE_(H5E_FILEOPEN,            hid_t)
BC_INLINE_(H5E_CANTCREATE,          hid_t)
BC_INLINE_(H5E_CANTOPENFILE,        hid_t)
BC_INLINE_(H5E_CANTCLOSEFILE,       hid_t)
BC_INLINE_(H5E_NOTHDF5,             hid_t)
BC_INLINE_(H5E_BADFILE,             hid_t)
BC_INLINE_(H5E_TRUNCATED,           hid_t)
BC_INLINE_(H5E_MOUNT,               hid_t)

BC_INLINE_(H5E_BADATOM,             hid_t)
BC_INLINE_(H5E_BADGROUP,            hid_t)
BC_INLINE_(H5E_CANTREGISTER,        hid_t)
BC_INLINE_(H5E_CANTINC,             hid_t)
BC_INLINE_(H5E_CANTDEC,             hid_t)
BC_INLINE_(H5E_NOIDS,               hid_t)

BC_INLINE_(H5E_CANTFLUSH,           hid_t)
BC_INLINE_(H5E_CANTSERIALIZE,       hid_t)
BC_INLINE_(H5E_CANTLOAD,            hid_t)
BC_INLINE_(H5E_PROTECT,             hid_t)
BC_INLINE_(H5E_NOTCACHED,           hid_t)
BC_INLINE_(H5E_SYSTEM,              hid_t)
BC_INLINE_(H5E_CANTINS,             hid_t)
BC_INLINE_(H5E_CANTPROTECT,         hid_t)
BC_INLINE_(H5E_CANTUNPROTECT,       hid_t)
BC_INLINE_(H5E_CANTPIN,             hid_t)
BC_INLINE_(H5E_CANTUNPIN,           hid_t)
BC_INLINE_(H5E_CANTMARKDIRTY,       hid_t)
BC_INLINE_(H5E_CANTDIRTY,           hid_t)
BC_INLINE_(H5E_CANTEXPUNGE,         hid_t)
BC_INLINE_(H5E_CANTRESIZE,          hid_t)

BC_INLINE_(H5E_TRAVERSE,            hid_t)
BC_INLINE_(H5E_NLINKS,              hid_t)
BC_INLINE_(H5E_NOTREGISTERED,       hid_t)
BC_INLINE_(H5E_CANTMOVE,            hid_t)
BC_INLINE_(H5E_CANTSORT,            hid_t)

BC_INLINE_(H5E_MPI,                 hid_t)
BC_INLINE_(H5E_MPIERRSTR,           hid_t)
BC_INLINE_(H5E_CANTRECV,            hid_t)

BC_INLINE_(H5E_CANTCLIP,            hid_t)
BC_INLINE_(H5E_CANTCOUNT,           hid_t)
BC_INLINE_(H5E_CANTSELECT,          hid_t)
BC_INLINE_(H5E_CANTNEXT,            hid_t)
BC_INLINE_(H5E_BADSELECT,           hid_t)
BC_INLINE_(H5E_CANTCOMPARE,         hid_t)

BC_INLINE_(H5E_UNINITIALIZED,       hid_t)
BC_INLINE_(H5E_UNSUPPORTED,         hid_t)
BC_INLINE_(H5E_BADTYPE,             hid_t)
BC_INLINE_(H5E_BADRANGE,            hid_t)
BC_INLINE_(H5E_BADVALUE,            hid_t)

BC_INLINE_(H5E_NOTFOUND,            hid_t)
BC_INLINE_(H5E_EXISTS,              hid_t)
BC_INLINE_(H5E_CANTENCODE,          hid_t)
BC_INLINE_(H5E_CANTDECODE,          hid_t)
BC_INLINE_(H5E_CANTSPLIT,           hid_t)
BC_INLINE_(H5E_CANTREDISTRIBUTE,    hid_t)
BC_INLINE_(H5E_CANTSWAP,            hid_t)
BC_INLINE_(H5E_CANTINSERT,          hid_t)
BC_INLINE_(H5E_CANTLIST,            hid_t)
BC_INLINE_(H5E_CANTMODIFY,          hid_t)
BC_INLINE_(H5E_CANTREMOVE,          hid_t)

BC_INLINE_(H5E_CANTCONVERT,         hid_t)
BC_INLINE_(H5E_BADSIZE,             hid_t)
