netcdf-c/libcdmr/nccr.h
Dennis Heimbigner 732fbff7ce
2011-09-20 17:30:02 +00:00

88 lines
2.3 KiB
C

/*********************************************************************
* Copyright 2010, UCAR/Unidata
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
* $Id$
* $Header$
*********************************************************************/
#ifndef NCCR_H
#define NCCR_H
/**************************************************/
/*Forwards*/
struct NC;
struct NC_URI;
struct NClist;
struct Data;
/**************************************************/
/* The NCCR structure is subtype of NC_INFO_TYPE_T (libsrc4) */
typedef struct NCCDMR {
struct NC* controller; /* Parent instance of NCDAP3 or NCDAP4 */
char* urltext; /* as given to open()*/
struct NC_URI* uri;
/* Track some flags */
int controls;
struct CCEconstraint* urlconstraint; /* constraint from url */
struct Header* ncstreamhdr; /* Parsed result */
struct Data* datahdr; /* Parsed result */
struct NClist* allvariables; /* set of all variables */
struct NClist* variables; /* set of visible variables */
/* provide a collection of the ncStream nodes*/
struct NClist* streamnodes;
/* Store curl state info */
struct NCCURLSTATE {
CURL* curl;
int curlflags;
int compress;
int verbose;
int followlocation;
int maxredirs;
char *host;
int port;
char *username;
char *password;
char* useragent;
char* cookiejar;
char* cookiefile;
int validate;
char* certificate;
char* key;
char* keypasswd;
char* cainfo; /* certificate authority */
char* capath;
} curl;
} NCCDMR;
typedef struct NCCURLSTATE NCCURLSTATE;
#ifdef NOTUSED
typedef struct NCCR {
NC_FILE_INFO_T info;
NCCDMR* cdmr;
} NCCR;
#endif
/**************************************************/
/* Define various flags (powers of 2)*/
#define SHOWFETCH (0x1)
#define BIGENDIAN (0x2)
#define DATAVARS (0x4)
/**************************************************/
/* Give PSEUDOFILE a value */
#define PSEUDOFILE "/tmp/pseudofileXXXXXX"
#define nullstring(s) (s==NULL?"(null)":s)
/**********************************************************/
/* Forwards */
struct Header;
struct NClist;
extern int nccrceparse(char*, int, struct NClist**, struct NClist**, char**);
/**********************************************************/
#endif /*NCCR_H*/