1/*********************************************************************
2  *   Copyright 1993, UCAR/Unidata
3  *   See netcdf/COPYRIGHT file for copying and redistribution conditions.
4  *********************************************************************/
5#ifndef NCDAP_H
6#define NCDAP_H 1
7
8#include "config.h"
9#include <stdlib.h>
10#ifdef HAVE_UNISTD_H
11#include <unistd.h>
12#endif
13#include <fcntl.h>
14#include <sys/stat.h>
15#include <string.h>
16#include <stdio.h>
17
18#include "ncbytes.h"
19#include "nclist.h"
20#include "nchashmap.h"
21#include "nclog.h"
22#include "ncuri.h"
23
24#include "fbits.h"
25#include "dceconstraints.h"
26
27#include "netcdf.h"
28#include "ncdispatch.h"
29#include "nc.h"
30#include "nc3internal.h"
31 /* netcdf overrides*/
32#include "dapnc.h"
33
34#include "oc.h"
35
36#include "dapdebug.h"
37#include "daputil.h"
38
39/**************************************************/
40/* sigh, do the forwards */
41struct NCprojection;
42struct NCselection;
43struct Getvara;
44struct NCcachenode;
45struct NCcache;
46struct NCslice;
47struct NCsegment;
48
49/**************************************************/
50
51#include "nccommon.h"
52#include "getvara.h"
53#include "constraints.h"
54
55/**************************************************/
56
57#ifndef USE_NETCDF4
58#define NC_UBYTE  7 /* unsigned 1 byte int */
59#define NC_USHORT  8 /* unsigned 2-byte int */
60#define NC_UINT  9 /* unsigned 4-byte int */
61#define NC_INT64  10 /* signed 8-byte int */
62#define NC_UINT64  11 /* unsigned 8-byte int */
63#define NC_STRING  12 /* string */
64
65#define NC_MAX_BYTE 127
66#define NC_MIN_BYTE (-NC_MAX_BYTE-1)
67#define NC_MAX_CHAR 255
68#define NC_MAX_SHORT 32767
69#define NC_MIN_SHORT (-NC_MAX_SHORT - 1)
70#define NC_MAX_INT 2147483647
71#define NC_MIN_INT (-NC_MAX_INT - 1)
72#define NC_MAX_FLOAT 3.402823466e+38f
73#define NC_MIN_FLOAT (-NC_MAX_FLOAT)
74#define NC_MAX_DOUBLE 1.7976931348623157e+308
75#define NC_MIN_DOUBLE (-NC_MAX_DOUBLE)
76#define NC_MAX_UBYTE NC_MAX_CHAR
77#define NC_MAX_USHORT 65535U
78#define NC_MAX_UINT 4294967295U
79#define NC_MAX_INT64 (9223372036854775807LL)
80#define NC_MIN_INT64 (-9223372036854775807LL-1)
81#define NC_MAX_UINT64 (18446744073709551615ULL)
82#define X_INT64_MAX     (9223372036854775807LL)
83#define X_INT64_MIN     (-X_INT64_MAX - 1)
84#define X_UINT64_MAX    (18446744073709551615ULL)
85#endif /*USE_NETCDF4*/
86
87
88/**************************************************/
89
90extern struct NCTMODEL nctmodels[];
91
92/**************************************************/
93/* Import some internal procedures from libsrc*/
94
95/* Internal, but non-static procedures */
96extern NCerror computecdfvarnames(NCDAPCOMMON*,CDFnode*,NClist*);
97extern NCerror computecdfnodesets(NCDAPCOMMONnccommCDFtreetree);
98extern NCerror computevarnodes(NCDAPCOMMON*, NClist*, NClist*);
99extern NCerror collectvardefdims(NCDAPCOMMONdrnoCDFnodevarNClistdimset);
100extern NCerror fixgrids(NCDAPCOMMONdrno);
101extern NCerror dapmerge(NCDAPCOMMONdrnoCDFnodenodeOCobject dasroot);
102extern NCerror sequencecheck(NCDAPCOMMONdrno);
103extern NCerror computecdfdimnames(NCDAPCOMMON*);
104extern NCerror attachdatadds(struct NCDAPCOMMON*);
105extern NCerror detachdatadds(struct NCDAPCOMMON*);
106extern void dapdispatch3init(void);
107
108/*
109extern void dereference(NCconstraint* constraint);
110extern NCerror rereference(NCconstraint*, NClist*);
111*/
112
113extern NCerror dapbuildvaraprojection(CDFnode*,
114      const size_t* startp, const size_t* countp, const ptrdiff_tstridep,
115      struct DCEprojection** projectionlist);
116
117extern NCerror nc3d_getvarx(int ncid, int varid,
118     const size_t *startp,
119     const size_t *countp,
120     const ptrdiff_t *stridep,
121     void *data,
122     nc_type dsttype0);
123
124/**************************************************/
125
126/* From: ncd2dispatch.c*/
127extern size_t dap_one[NC_MAX_VAR_DIMS];
128extern size_t dap_zero[NC_MAX_VAR_DIMS];
129
130extern NCerror nc3d_open(const char* path, int mode, int* ncidp);
131extern int nc3d_close(int ncid);
132extern NCerror restruct(NCDAPCOMMON*, CDFnodeddsrootCDFnodepatternNClist*);
133extern void setvisible(CDFnoderoot, int visible);
134extern NCerror mapnodes(CDFnodedstrootCDFnodesrcroot);
135extern void unmap(CDFnoderoot);
136
137#if 0
138extern NCerror fetchpatternmetadata(NCDAPCOMMONnccomm);
139extern NCerror fetchconstrainedmetadata(NCDAPCOMMONnccomm);
140extern void applyclientparamcontrols(NCDAPCOMMON*);
141extern NCerror suppressunusablevars(NCDAPCOMMON*);
142extern void estimatevarsizes(NCDAPCOMMON*);
143extern NCerror showprojection(NCDAPCOMMON*, CDFnodevar);
144#endif
145
146/* From: dapcvt.c*/
147extern NCerror dapconvert(nc_typenc_type, char*, char*, size_t);
148extern int dapcvtattrval(nc_type, void*, NClist*);
149
150#endif /*NCDAP_H*/


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