mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-27 08:49:16 +08:00
d953899559
re: https://github.com/zarr-developers/zarr-specs/issues/41 After discussions with the Zarr community, it was decided to convert to a new representation of the NCZarr meta-data extensions: version 2. These extensions store information necessary to mapping the Zarr data model to the netcdf-4 data model. The basic change is to remove the NCZarr specific objects: .nczarr, .nczgroup, .nczarray, and .nczattr. The contents of these objects is moved into the corresponding existing Zarr objects as special keys. The mapping is as follows: * ''.nczarr'' => ''/.zgroup/_NCZARR_SUPERBLOCK_'' * ''.nczgroup => ''.zgroup/_NCZARR_GROUP_'' * ''.nczarray => ''.zarray/_NCZARR_ARRAY_'' * ''.nczattr => ''.zattr/_NCZARR_ATTR_'' Backward compatibility is maintained by looking for the object ''/.nczarr'' and if found, then assuming that the dataset is in the older version 1 format. This compatibility only supports reading of such version 1 datasets. Documentation and test cases are also added. Misc. Other Changes: 1. The json parsing code was added to the general library instead of nczarr only (ncjson.c, ncjson.h). 2. Improved support for different platform paths by allowing conversion to a single common path representation. 3. Add some new error codes. 4. Modify nccopy usage to mention the new chunking specification.
33 lines
1016 B
C
33 lines
1016 B
C
/* Copyright 2018-2018 University Corporation for Atmospheric
|
|
Research/Unidata. */
|
|
/**
|
|
* Header file for dhttp.c
|
|
* @author Dennis Heimbigner
|
|
*/
|
|
|
|
#ifndef NCHTTP_H
|
|
#define NCHTTP_H
|
|
|
|
typedef enum HTTPMETHOD {
|
|
HTTPNONE=0, HTTPGET=1, HTTPPUT=2, HTTPPOST=3, HTTPHEAD=4
|
|
} HTTPMETHOD;
|
|
|
|
struct CURL; /* Forward */
|
|
|
|
typedef struct NC_HTTP_STATE {
|
|
struct CURL* curl;
|
|
long httpcode;
|
|
const char** headset; /* which headers to capture */
|
|
NClist* headers;
|
|
NCbytes* buf;
|
|
char errbuf[1024]; /* assert(CURL_ERROR_SIZE <= 1024) */
|
|
} NC_HTTP_STATE;
|
|
|
|
extern int nc_http_open(const char* objecturl, NC_HTTP_STATE** state, long long* lenp);
|
|
extern int nc_http_size(NC_HTTP_STATE* state, const char* url, long long* sizep);
|
|
extern int nc_http_read(NC_HTTP_STATE* state, const char* url, size64_t start, size64_t count, NCbytes* buf);
|
|
extern int nc_http_close(NC_HTTP_STATE* state);
|
|
extern int nc_http_headers(NC_HTTP_STATE* state, const NClist** headersp); /* only if headerson */
|
|
|
|
#endif /*NCHTTP_H*/
|