netcdf-c/libsrc4/nc4dispatch.c
2019-02-19 05:55:36 -07:00

83 lines
1.9 KiB
C

/* Copyright 2005-2018 University Corporation for Atmospheric
Research/Unidata. */
/**
* @file
* @internal This header file contains libsrc4 dispatch
* initialization, user-defined format, and logging prototypes and
* macros.
*
* @author Dennis Heimbigner, Ed Hartnett
*/
#include "config.h"
#include <stdlib.h>
#include "nc4internal.h"
#include "nc4dispatch.h"
#include "nc.h"
/* If user-defined formats are in use, we need to declare their
* dispatch tables. */
#ifdef USE_UDF0
extern NC_Dispatch UDF0_DISPATCH;
#endif /* USE_UDF0 */
#ifdef USE_UDF1
extern NC_Dispatch UDF1_DISPATCH;
#endif /* USE_UDF1 */
#ifdef USE_NETCDF4
/* Pointers to dispatch tables for user-defined formats. */
extern NC_Dispatch *UDF0_dispatch_table;
extern NC_Dispatch *UDF1_dispatch_table;
#endif /* USE_NETCDF4 */
/**
* @internal Initialize netCDF-4. If user-defined format(s) have been
* specified in configure, load their dispatch table(s).
*
* @return ::NC_NOERR No error.
* @author Dennis Heimbigner
*/
int
NC4_initialize(void)
{
int ret = NC_NOERR;
#ifdef USE_UDF0
/* If user-defined format 0 was specified during configure, set up
* it's dispatch table. */
if ((ret = nc_def_user_format(NC_UDF0, UDF0_DISPATCH_FUNC, NULL)))
return ret;
#endif /* USE_UDF0 */
#ifdef USE_UDF1
/* If user-defined format 0 was specified during configure, set up
* it's dispatch table. */
if ((ret = nc_def_user_format(NC_UDF1F, &UDF1_DISPATCH_FUNC, NULL)))
return ret;
#endif /* USE_UDF0 */
#ifdef LOGGING
if(getenv(NCLOGLEVELENV) != NULL) {
char* slevel = getenv(NCLOGLEVELENV);
long level = atol(slevel);
if(level >= 0)
nc_set_log_level((int)level);
}
#endif
return ret;
}
/**
* @internal Finalize netCDF-4.
*
* @return ::NC_NOERR No error.
* @author Dennis Heimbigner
*/
int
NC4_finalize(void)
{
return NC_NOERR;
}