netcdf-c/liblib/stub.c
2013-03-15 20:31:07 +00:00

84 lines
1.7 KiB
C

/*********************************************************************
* Copyright 2010, UCAR/Unidata
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
*********************************************************************/
#include "config.h"
#include "ncdispatch.h"
extern int NC3_initialize(void);
extern int NCSUBSTRATE_initialize(void);
#ifdef USE_NETCDF4
extern int NC4_initialize(void);
#endif
#ifdef USE_DAP
extern int NCD3_initialize(void);
#ifdef USE_NETCDF4
extern int NCD4_initialize(void);
#endif
#endif
#ifdef USE_CDMREMOTE
extern int NCCR_initialize(void);
#endif
#ifdef USE_PNETCDF
extern int NC5_initialize(void);
#endif
/**
This procedure invokes all defined
initializers, and there is an initializer
for every known dispatch table.
So if you modify the format of NC_Dispatch,
then you need to fix it everywhere.
*/
int
NC_initialize(void)
{
int stat = NC_NOERR;
/* Allow libdispatch to do initialization */
if((stat = NCDISPATCH_initialize())) return stat;
/* Initialize each active protocol */
if((stat = NC3_initialize())) return stat;
#ifdef USE_DAP
if((stat = NCD3_initialize())) return stat;
#endif
#ifdef USE_PNETCDF
if((stat = NC5_initialize())) return stat;
#endif
#ifdef USE_NETCDF4
if((stat = NC4_initialize())) return stat;
/* if((stat = NCD_initialize())) return stat; */
#ifdef USE_DAP
#ifdef NOTUSED
if((stat = NCD4_initialize())) return stat;
#endif
#endif
#ifdef USE_CDMREMOTE
if((stat = NCCR_initialize())) return stat;
#endif
#endif /* USE_NETCDF4 */
/* Finally, initialize the SUBSTRATE table (dsubstrate.c) */
if((stat = NCSUBSTRATE_initialize())) return stat;
return NC_NOERR;
}