- Adapted indenation to new agreed upon system
- Added support for second generation scriptcontext based counter
This commit is contained in:
283
napi.h
283
napi.h
@@ -21,24 +21,24 @@
|
||||
|
||||
For further information, see <http://www.nexusformat.org>
|
||||
|
||||
$Id: napi.h,v 1.12 2008/01/03 09:56:56 koennecke Exp $
|
||||
$Id: napi.h,v 1.13 2009/02/13 09:00:20 koennecke Exp $
|
||||
|
||||
----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#ifndef NEXUSAPI
|
||||
#define NEXUSAPI
|
||||
|
||||
/* NeXus HDF45 */
|
||||
#define NEXUS_VERSION "4.1.0" /* major.minor.patch */
|
||||
#define NEXUS_VERSION "4.1.0" /* major.minor.patch */
|
||||
|
||||
#define CONSTCHAR const char
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define snprintf nxisnprintf
|
||||
extern int nxisnprintf(char* buffer, int len, const char* format, ... );
|
||||
#endif /* _MSC_VER */
|
||||
extern int nxisnprintf(char *buffer, int len, const char *format, ...);
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
typedef void* NXhandle; /* really a pointer to a NexusFile structure */
|
||||
typedef void *NXhandle; /* really a pointer to a NexusFile structure */
|
||||
typedef int NXstatus;
|
||||
typedef char NXname[128];
|
||||
|
||||
@@ -55,16 +55,18 @@ typedef char NXname[128];
|
||||
* if ( mode & NXACC_NOSTRIP )
|
||||
*
|
||||
*/
|
||||
#define NXACCMASK_REMOVEFLAGS (0x7) /* bit mask to remove higher flag options */
|
||||
#define NXACCMASK_REMOVEFLAGS (0x7) /* bit mask to remove higher flag options */
|
||||
|
||||
typedef enum {NXACC_READ=1, NXACC_RDWR=2, NXACC_CREATE=3, NXACC_CREATE4=4,
|
||||
NXACC_CREATE5=5, NXACC_CREATEXML=6, NXACC_NOSTRIP=128} NXaccess;
|
||||
typedef enum { NXACC_READ = 1, NXACC_RDWR = 2, NXACC_CREATE =
|
||||
3, NXACC_CREATE4 = 4,
|
||||
NXACC_CREATE5 = 5, NXACC_CREATEXML = 6, NXACC_NOSTRIP = 128
|
||||
} NXaccess;
|
||||
|
||||
typedef struct {
|
||||
char *iname;
|
||||
int type;
|
||||
}info_type, *pinfo;
|
||||
|
||||
char *iname;
|
||||
int type;
|
||||
} info_type, *pinfo;
|
||||
|
||||
#define NX_OK 1
|
||||
#define NX_ERROR 0
|
||||
#define NX_EOD -1
|
||||
@@ -89,15 +91,15 @@ typedef struct {
|
||||
NX_CHAR 8 bit character
|
||||
NX_BINARY lump of binary data == NX_UINT8
|
||||
|
||||
--------------------------------------------------------------------------*/
|
||||
--------------------------------------------------------------------------*/
|
||||
|
||||
/* Map NeXus to HDF types */
|
||||
#define NX_FLOAT32 5
|
||||
#define NX_FLOAT64 6
|
||||
#define NX_INT8 20
|
||||
#define NX_INT8 20
|
||||
#define NX_UINT8 21
|
||||
#define NX_BOOLEAN NX_UINT
|
||||
#define NX_INT16 22
|
||||
#define NX_INT16 22
|
||||
#define NX_UINT16 23
|
||||
#define NX_INT32 24
|
||||
#define NX_UINT32 25
|
||||
@@ -110,21 +112,21 @@ typedef struct {
|
||||
#define NX_COMP_NONE 100
|
||||
#define NX_COMP_LZW 200
|
||||
#define NX_COMP_RLE 300
|
||||
#define NX_COMP_HUF 400
|
||||
#define NX_COMP_HUF 400
|
||||
|
||||
typedef struct {
|
||||
long iTag; /* HDF4 variable */
|
||||
long iRef; /* HDF4 variable */
|
||||
char targetPath[1024]; /* path to item to link */
|
||||
int linkType; /* HDF5: 0 for group link, 1 for SDS link */
|
||||
} NXlink;
|
||||
long iTag; /* HDF4 variable */
|
||||
long iRef; /* HDF4 variable */
|
||||
char targetPath[1024]; /* path to item to link */
|
||||
int linkType; /* HDF5: 0 for group link, 1 for SDS link */
|
||||
} NXlink;
|
||||
|
||||
#define NXMAXSTACK 50
|
||||
|
||||
#define CONCAT(__a,__b) __a##__b /* token concatenation */
|
||||
|
||||
# ifdef __VMS
|
||||
# define MANGLE(__arg) __arg
|
||||
# define MANGLE(__arg) __arg
|
||||
# else
|
||||
# define MANGLE(__arg) CONCAT(__arg,_)
|
||||
# endif
|
||||
@@ -194,132 +196,167 @@ typedef struct {
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
extern NXstatus NXopen(CONSTCHAR * filename, NXaccess access_method, NXhandle* pHandle);
|
||||
extern NXstatus NXclose(NXhandle* pHandle);
|
||||
extern NXstatus NXflush(NXhandle* pHandle);
|
||||
|
||||
extern NXstatus NXmakegroup (NXhandle handle, CONSTCHAR *name, CONSTCHAR* NXclass);
|
||||
extern NXstatus NXopengroup (NXhandle handle, CONSTCHAR *name, CONSTCHAR* NXclass);
|
||||
extern NXstatus NXopenpath (NXhandle handle, CONSTCHAR *path);
|
||||
extern NXstatus NXopengrouppath (NXhandle handle, CONSTCHAR *path);
|
||||
#endif /* __cplusplus */
|
||||
extern NXstatus NXopen(CONSTCHAR * filename, NXaccess access_method,
|
||||
NXhandle * pHandle);
|
||||
extern NXstatus NXclose(NXhandle * pHandle);
|
||||
extern NXstatus NXflush(NXhandle * pHandle);
|
||||
|
||||
extern NXstatus NXclosegroup(NXhandle handle);
|
||||
|
||||
extern NXstatus NXmakedata (NXhandle handle, CONSTCHAR* label, int datatype, int rank, int dim[]);
|
||||
extern NXstatus NXcompmakedata (NXhandle handle, CONSTCHAR* label, int datatype, int rank, int dim[], int comp_typ, int bufsize[]);
|
||||
extern NXstatus NXcompress (NXhandle handle, int compr_type);
|
||||
extern NXstatus NXopendata (NXhandle handle, CONSTCHAR* label);
|
||||
extern NXstatus NXclosedata(NXhandle handle);
|
||||
extern NXstatus NXputdata(NXhandle handle, void* data);
|
||||
extern NXstatus NXmakegroup(NXhandle handle, CONSTCHAR * name,
|
||||
CONSTCHAR * NXclass);
|
||||
extern NXstatus NXopengroup(NXhandle handle, CONSTCHAR * name,
|
||||
CONSTCHAR * NXclass);
|
||||
extern NXstatus NXopenpath(NXhandle handle, CONSTCHAR * path);
|
||||
extern NXstatus NXopengrouppath(NXhandle handle, CONSTCHAR * path);
|
||||
|
||||
extern NXstatus NXputattr(NXhandle handle, CONSTCHAR* name, void* data, int iDataLen, int iType);
|
||||
extern NXstatus NXputslab(NXhandle handle, void* data, int start[], int size[]);
|
||||
extern NXstatus NXclosegroup(NXhandle handle);
|
||||
|
||||
extern NXstatus NXgetdataID(NXhandle handle, NXlink* pLink);
|
||||
extern NXstatus NXmakelink(NXhandle handle, NXlink* pLink);
|
||||
extern NXstatus NXmakenamedlink(NXhandle handle, CONSTCHAR* newname, NXlink* pLink);
|
||||
extern NXstatus NXopensourcegroup(NXhandle handle);
|
||||
extern NXstatus NXmakedata(NXhandle handle, CONSTCHAR * label,
|
||||
int datatype, int rank, int dim[]);
|
||||
extern NXstatus NXcompmakedata(NXhandle handle, CONSTCHAR * label,
|
||||
int datatype, int rank, int dim[],
|
||||
int comp_typ, int bufsize[]);
|
||||
extern NXstatus NXcompress(NXhandle handle, int compr_type);
|
||||
extern NXstatus NXopendata(NXhandle handle, CONSTCHAR * label);
|
||||
extern NXstatus NXclosedata(NXhandle handle);
|
||||
extern NXstatus NXputdata(NXhandle handle, void *data);
|
||||
|
||||
extern NXstatus NXgetdata(NXhandle handle, void* data);
|
||||
extern NXstatus NXgetinfo(NXhandle handle, int* rank, int dimension[], int* datatype);
|
||||
extern NXstatus NXgetnextentry(NXhandle handle, NXname name, NXname nxclass, int* datatype);
|
||||
extern NXstatus NXputattr(NXhandle handle, CONSTCHAR * name, void *data,
|
||||
int iDataLen, int iType);
|
||||
extern NXstatus NXputslab(NXhandle handle, void *data, int start[],
|
||||
int size[]);
|
||||
|
||||
extern NXstatus NXgetslab(NXhandle handle, void* data, int start[], int size[]);
|
||||
extern NXstatus NXgetnextattr(NXhandle handle, NXname pName, int *iLength, int *iType);
|
||||
extern NXstatus NXgetattr(NXhandle handle, char* name, void* data, int* iDataLen, int* iType);
|
||||
extern NXstatus NXgetattrinfo(NXhandle handle, int* no_items);
|
||||
extern NXstatus NXgetgroupID(NXhandle handle, NXlink* pLink);
|
||||
extern NXstatus NXgetgroupinfo(NXhandle handle, int* no_items, NXname name, NXname nxclass);
|
||||
extern NXstatus NXsameID(NXhandle handle, NXlink* pFirstID, NXlink* pSecondID);
|
||||
extern NXstatus NXgetdataID(NXhandle handle, NXlink * pLink);
|
||||
extern NXstatus NXmakelink(NXhandle handle, NXlink * pLink);
|
||||
extern NXstatus NXmakenamedlink(NXhandle handle, CONSTCHAR * newname,
|
||||
NXlink * pLink);
|
||||
extern NXstatus NXopensourcegroup(NXhandle handle);
|
||||
|
||||
extern NXstatus NXinitgroupdir(NXhandle handle);
|
||||
extern NXstatus NXinitattrdir(NXhandle handle);
|
||||
extern NXstatus NXsetnumberformat(NXhandle handle,
|
||||
int type, char *format);
|
||||
extern NXstatus NXgetdata(NXhandle handle, void *data);
|
||||
extern NXstatus NXgetinfo(NXhandle handle, int *rank, int dimension[],
|
||||
int *datatype);
|
||||
extern NXstatus NXgetnextentry(NXhandle handle, NXname name,
|
||||
NXname nxclass, int *datatype);
|
||||
|
||||
extern NXstatus NXinquirefile(NXhandle handle, char *filename, int filenameBufferLength);
|
||||
extern NXstatus NXisexternalgroup(NXhandle fid, CONSTCHAR *name, CONSTCHAR *nxclass, char *url, int urlLen);
|
||||
extern NXstatus NXlinkexternal(NXhandle fid, CONSTCHAR *name, CONSTCHAR *nxclass, CONSTCHAR *url);
|
||||
extern NXstatus NXgetslab(NXhandle handle, void *data, int start[],
|
||||
int size[]);
|
||||
extern NXstatus NXgetnextattr(NXhandle handle, NXname pName,
|
||||
int *iLength, int *iType);
|
||||
extern NXstatus NXgetattr(NXhandle handle, char *name, void *data,
|
||||
int *iDataLen, int *iType);
|
||||
extern NXstatus NXgetattrinfo(NXhandle handle, int *no_items);
|
||||
extern NXstatus NXgetgroupID(NXhandle handle, NXlink * pLink);
|
||||
extern NXstatus NXgetgroupinfo(NXhandle handle, int *no_items,
|
||||
NXname name, NXname nxclass);
|
||||
extern NXstatus NXsameID(NXhandle handle, NXlink * pFirstID,
|
||||
NXlink * pSecondID);
|
||||
|
||||
extern NXstatus NXmalloc(void** data, int rank, int dimensions[], int datatype);
|
||||
extern NXstatus NXfree(void** data);
|
||||
extern NXstatus NXinitgroupdir(NXhandle handle);
|
||||
extern NXstatus NXinitattrdir(NXhandle handle);
|
||||
extern NXstatus NXsetnumberformat(NXhandle handle,
|
||||
int type, char *format);
|
||||
|
||||
extern NXstatus NXinquirefile(NXhandle handle, char *filename,
|
||||
int filenameBufferLength);
|
||||
extern NXstatus NXisexternalgroup(NXhandle fid, CONSTCHAR * name,
|
||||
CONSTCHAR * nxclass, char *url,
|
||||
int urlLen);
|
||||
extern NXstatus NXlinkexternal(NXhandle fid, CONSTCHAR * name,
|
||||
CONSTCHAR * nxclass, CONSTCHAR * url);
|
||||
|
||||
extern NXstatus NXmalloc(void **data, int rank, int dimensions[],
|
||||
int datatype);
|
||||
extern NXstatus NXfree(void **data);
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
NAPI internals
|
||||
------------------------------------------------------------------------*/
|
||||
typedef void (*ErrFunc)(void *data, char *text);
|
||||
extern void NXMSetError(void *pData, ErrFunc);
|
||||
extern ErrFunc NXMGetError();
|
||||
extern void NXMDisableErrorReporting();
|
||||
extern void NXMEnableErrorReporting();
|
||||
extern void (*NXIReportError)(void *pData,char *text);
|
||||
extern void *NXpData;
|
||||
extern char *NXIformatNeXusTime();
|
||||
extern NXstatus NXIprintlink(NXhandle fid, NXlink* link);
|
||||
typedef void (*ErrFunc) (void *data, char *text);
|
||||
extern void NXMSetError(void *pData, ErrFunc);
|
||||
extern ErrFunc NXMGetError();
|
||||
extern void NXMDisableErrorReporting();
|
||||
extern void NXMEnableErrorReporting();
|
||||
extern void (*NXIReportError) (void *pData, char *text);
|
||||
extern void *NXpData;
|
||||
extern char *NXIformatNeXusTime();
|
||||
extern NXstatus NXIprintlink(NXhandle fid, NXlink * link);
|
||||
|
||||
/*
|
||||
another special function for setting the default cache size for HDF-5
|
||||
*/
|
||||
extern NXstatus NXsetcache(long newVal);
|
||||
extern NXstatus NXsetcache(long newVal);
|
||||
|
||||
typedef struct {
|
||||
NXhandle *pNexusData;
|
||||
int stripFlag;
|
||||
NXstatus ( *nxclose)(NXhandle* pHandle);
|
||||
NXstatus ( *nxflush)(NXhandle* pHandle);
|
||||
NXstatus ( *nxmakegroup) (NXhandle handle, CONSTCHAR *name, CONSTCHAR* NXclass);
|
||||
NXstatus ( *nxopengroup) (NXhandle handle, CONSTCHAR *name, CONSTCHAR* NXclass);
|
||||
NXstatus ( *nxclosegroup)(NXhandle handle);
|
||||
NXstatus ( *nxmakedata) (NXhandle handle, CONSTCHAR* label, int datatype, int rank, int dim[]);
|
||||
NXstatus ( *nxcompmakedata) (NXhandle handle, CONSTCHAR* label, int datatype, int rank, int dim[], int comp_typ, int bufsize[]);
|
||||
NXstatus ( *nxcompress) (NXhandle handle, int compr_type);
|
||||
NXstatus ( *nxopendata) (NXhandle handle, CONSTCHAR* label);
|
||||
NXstatus ( *nxclosedata)(NXhandle handle);
|
||||
NXstatus ( *nxputdata)(NXhandle handle, void* data);
|
||||
NXstatus ( *nxputattr)(NXhandle handle, CONSTCHAR* name, void* data, int iDataLen, int iType);
|
||||
NXstatus ( *nxputslab)(NXhandle handle, void* data, int start[], int size[]);
|
||||
NXstatus ( *nxgetdataID)(NXhandle handle, NXlink* pLink);
|
||||
NXstatus ( *nxmakelink)(NXhandle handle, NXlink* pLink);
|
||||
NXstatus ( *nxmakenamedlink)(NXhandle handle, CONSTCHAR *newname, NXlink* pLink);
|
||||
NXstatus ( *nxgetdata)(NXhandle handle, void* data);
|
||||
NXstatus ( *nxgetinfo)(NXhandle handle, int* rank, int dimension[], int* datatype);
|
||||
NXstatus ( *nxgetnextentry)(NXhandle handle, NXname name, NXname nxclass, int* datatype);
|
||||
NXstatus ( *nxgetslab)(NXhandle handle, void* data, int start[], int size[]);
|
||||
NXstatus ( *nxgetnextattr)(NXhandle handle, NXname pName, int *iLength, int *iType);
|
||||
NXstatus ( *nxgetattr)(NXhandle handle, char* name, void* data, int* iDataLen, int* iType);
|
||||
NXstatus ( *nxgetattrinfo)(NXhandle handle, int* no_items);
|
||||
NXstatus ( *nxgetgroupID)(NXhandle handle, NXlink* pLink);
|
||||
NXstatus ( *nxgetgroupinfo)(NXhandle handle, int* no_items, NXname name, NXname nxclass);
|
||||
NXstatus ( *nxsameID)(NXhandle handle, NXlink* pFirstID, NXlink* pSecondID);
|
||||
NXstatus ( *nxinitgroupdir)(NXhandle handle);
|
||||
NXstatus ( *nxinitattrdir)(NXhandle handle);
|
||||
NXstatus ( *nxsetnumberformat)(NXhandle handle, int type, char *format);
|
||||
NXstatus ( *nxprintlink)(NXhandle handle, NXlink* link);
|
||||
NXhandle *pNexusData;
|
||||
int stripFlag;
|
||||
NXstatus(*nxclose) (NXhandle * pHandle);
|
||||
NXstatus(*nxflush) (NXhandle * pHandle);
|
||||
NXstatus(*nxmakegroup) (NXhandle handle, CONSTCHAR * name,
|
||||
CONSTCHAR * NXclass);
|
||||
NXstatus(*nxopengroup) (NXhandle handle, CONSTCHAR * name,
|
||||
CONSTCHAR * NXclass);
|
||||
NXstatus(*nxclosegroup) (NXhandle handle);
|
||||
NXstatus(*nxmakedata) (NXhandle handle, CONSTCHAR * label,
|
||||
int datatype, int rank, int dim[]);
|
||||
NXstatus(*nxcompmakedata) (NXhandle handle, CONSTCHAR * label,
|
||||
int datatype, int rank, int dim[],
|
||||
int comp_typ, int bufsize[]);
|
||||
NXstatus(*nxcompress) (NXhandle handle, int compr_type);
|
||||
NXstatus(*nxopendata) (NXhandle handle, CONSTCHAR * label);
|
||||
NXstatus(*nxclosedata) (NXhandle handle);
|
||||
NXstatus(*nxputdata) (NXhandle handle, void *data);
|
||||
NXstatus(*nxputattr) (NXhandle handle, CONSTCHAR * name, void *data,
|
||||
int iDataLen, int iType);
|
||||
NXstatus(*nxputslab) (NXhandle handle, void *data, int start[],
|
||||
int size[]);
|
||||
NXstatus(*nxgetdataID) (NXhandle handle, NXlink * pLink);
|
||||
NXstatus(*nxmakelink) (NXhandle handle, NXlink * pLink);
|
||||
NXstatus(*nxmakenamedlink) (NXhandle handle, CONSTCHAR * newname,
|
||||
NXlink * pLink);
|
||||
NXstatus(*nxgetdata) (NXhandle handle, void *data);
|
||||
NXstatus(*nxgetinfo) (NXhandle handle, int *rank, int dimension[],
|
||||
int *datatype);
|
||||
NXstatus(*nxgetnextentry) (NXhandle handle, NXname name,
|
||||
NXname nxclass, int *datatype);
|
||||
NXstatus(*nxgetslab) (NXhandle handle, void *data, int start[],
|
||||
int size[]);
|
||||
NXstatus(*nxgetnextattr) (NXhandle handle, NXname pName, int *iLength,
|
||||
int *iType);
|
||||
NXstatus(*nxgetattr) (NXhandle handle, char *name, void *data,
|
||||
int *iDataLen, int *iType);
|
||||
NXstatus(*nxgetattrinfo) (NXhandle handle, int *no_items);
|
||||
NXstatus(*nxgetgroupID) (NXhandle handle, NXlink * pLink);
|
||||
NXstatus(*nxgetgroupinfo) (NXhandle handle, int *no_items,
|
||||
NXname name, NXname nxclass);
|
||||
NXstatus(*nxsameID) (NXhandle handle, NXlink * pFirstID,
|
||||
NXlink * pSecondID);
|
||||
NXstatus(*nxinitgroupdir) (NXhandle handle);
|
||||
NXstatus(*nxinitattrdir) (NXhandle handle);
|
||||
NXstatus(*nxsetnumberformat) (NXhandle handle, int type,
|
||||
char *format);
|
||||
NXstatus(*nxprintlink) (NXhandle handle, NXlink * link);
|
||||
} NexusFunction, *pNexusFunction;
|
||||
/*---------------------*/
|
||||
extern long nx_cacheSize;
|
||||
|
||||
/* FORTRAN internals */
|
||||
|
||||
extern NXstatus NXfopen(char * filename, NXaccess* am,
|
||||
NexusFunction* pHandle);
|
||||
extern NXstatus NXfclose (NexusFunction* pHandle);
|
||||
extern NXstatus NXfputattr(NXhandle fid, char *name, void *data,
|
||||
int *pDatalen, int *pIType);
|
||||
extern NXstatus NXfcompress(NXhandle fid, int *compr_type);
|
||||
extern NXstatus NXfcompmakedata(NXhandle fid, char *name,
|
||||
int *pDatatype,
|
||||
int *pRank, int dimensions[],
|
||||
int *compression_type, int chunk[]);
|
||||
extern NXstatus NXfmakedata(NXhandle fid, char *name, int *pDatatype,
|
||||
int *pRank, int dimensions[]);
|
||||
extern NXstatus NXfflush(NexusFunction* pHandle);
|
||||
extern NXstatus NXfopen(char *filename, NXaccess * am,
|
||||
NexusFunction * pHandle);
|
||||
extern NXstatus NXfclose(NexusFunction * pHandle);
|
||||
extern NXstatus NXfputattr(NXhandle fid, char *name, void *data,
|
||||
int *pDatalen, int *pIType);
|
||||
extern NXstatus NXfcompress(NXhandle fid, int *compr_type);
|
||||
extern NXstatus NXfcompmakedata(NXhandle fid, char *name,
|
||||
int *pDatatype,
|
||||
int *pRank, int dimensions[],
|
||||
int *compression_type, int chunk[]);
|
||||
extern NXstatus NXfmakedata(NXhandle fid, char *name, int *pDatatype,
|
||||
int *pRank, int dimensions[]);
|
||||
extern NXstatus NXfflush(NexusFunction * pHandle);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __cplusplus */
|
||||
#endif /*NEXUSAPI*/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user