1/*********************************************************************
2 *   Copyright 1993, UCAR/Unidata
3 *   See netcdf/COPYRIGHT file for copying and redistribution conditions.
4 *********************************************************************/
5#ifndef DAPUTIL_H
6#define DAPUTIL_H 1
7
8/* Define a set of flags to control path construction */
9#define PATHNC    1 /*Use ->ncname*/
10#define PATHELIDE 2 /*Leave out elided nodes*/
11
12/* mnemonic */
13#define WITHDATASET 1
14#define WITHOUTDATASET 0
15
16/* sigh!, Forwards */
17struct CDFnode;
18struct NCTMODEL;
19struct NCDAPCOMMON;
20
21extern nc_type nctypeconvert(struct NCDAPCOMMON*, nc_type);
22extern nc_type octypetonc(OCtype);
23extern OCtype nctypetodap(nc_type);
24extern size_t nctypesizeof(nc_type);
25extern char* nctypetostring(nc_type);
26extern char* maketmppath(char* path, char* prefix);
27
28extern void collectnodepath(struct CDFnode*, NClistpath, int dataset);
29extern void collectocpath(OClink connOCobject nodeNClistpath);
30
31extern char* makecdfpathstring(struct CDFnode*,const char*);
32extern void clonenodenamepath(struct CDFnode*, NClist*, int);
33extern char* makepathstring(NClistpath, const char* separator, int flags);
34
35extern char* makeocpathstring(OClinkOCobject, const char*);
36
37extern char* cdflegalname(char* dapname);
38
39/* Given a param string; return its value or null if not found*/
40extern const char* dapparamvalue(struct NCDAPCOMMONdrno, const char* param);
41/* Given a param string; check for a given substring */
42extern int dapparamcheck(struct NCDAPCOMMONdrno, const char* param, const char* substring);
43
44extern int nclistconcat(NClistl1NClistl2);
45extern int nclistminus(NClistl1NClistl2);
46extern int nclistdeleteall(NClistl1, void*);
47
48extern char* getvaraprint(void* gv);
49
50extern int dapinsequence(struct CDFnodenode);
51extern int dapinstructarray(struct CDFnodenode);
52extern int daptopgrid(struct CDFnodenode);
53extern int daptopseq(struct CDFnodenode);
54extern int daptoplevel(struct CDFnodenode);
55extern int dapgridmap(struct CDFnodenode);
56extern int dapgridarray(struct CDFnodenode);
57extern int dapgridelement(struct CDFnodenode);
58
59extern unsigned int modeldecode(int, const char*, const struct NCTMODEL*, unsigned int);
60extern unsigned long getlimitnumber(const char* limit);
61
62extern void dapexpandescapes(char *termstring);
63
64/* Only used by libncdap4 */
65extern int dapalignbuffer(NCbytes*, int alignment);
66extern size_t dapdimproduct(NClistdimensions);
67
68#if defined(DLL_NETCDF)
69# if defined(DLL_EXPORT)
70#  define NCC_EXTRA __declspec(dllexport)
71#else
72#  define NCC_EXTRA __declspec(dllimport)
73# endif
74NCC_EXTRA extern int nc__testurl(const char* path, char** basename);
75#else
76extern int nc__testurl(const char* parth, char** basename);
77#endif
78
79
80/* Provide a wrapper for oc_fetch so we can log what it does */
81extern NCerror dap_fetch(struct NCDAPCOMMON*,OClink,const char*,OCdxd,OCobject*);
82
83extern int dap_badname(char* name);
84extern char* dap_repairname(char* name);
85
86#endif /*DAPUTIL_H*/


HyperKWIC - Version 7.20DA executed at 11:37 on 27 Oct 2017 | Polyhedron Solutions - INTERNAL USE | COMMERCIAL (Any O/S) SN 4AKIed