Commit Graph

44 Commits

Author SHA1 Message Date
Dennis Heimbigner
0c59e13bf7 Master merge, conflict resolution, cleanup 2019-02-24 16:54:13 -07:00
Dennis Heimbigner
bf2746b8ea Provide byte-range reading of remote datasets
re: issue https://github.com/Unidata/netcdf-c/issues/1251

Assume that you have the URL to a remote dataset
which is a normal netcdf-3 or netcdf-4 file.

This PR allows the netcdf-c to read that dataset's
contents as a netcdf file using HTTP byte ranges
if the remote server supports byte-range access.

Originally, this PR was set up to access Amazon S3 objects,
but it can also access other remote datasets such as those
provided by a Thredds server via the HTTPServer access protocol.
It may also work for other kinds of servers.

Note that this is not intended as a true production
capability because, as is known, this kind of access to
can be quite slow. In addition, the byte-range IO drivers
do not currently do any sort of optimization or caching.

An additional goal here is to gain some experience with
the Amazon S3 REST protocol.

This architecture and its use documented in
the file docs/byterange.dox.

There are currently two test cases:

1. nc_test/tst_s3raw.c - this does a simple open, check format, close cycle
   for a remote netcdf-3 file and a remote netcdf-4 file.
2. nc_test/test_s3raw.sh - this uses ncdump to investigate some remote
   datasets.

This PR also incorporates significantly changed model inference code
(see the superceded PR https://github.com/Unidata/netcdf-c/pull/1259).

1. It centralizes the code that infers the dispatcher.
2. It adds support for byte-range URLs

Other changes:

1. NC_HDF5_finalize was not being properly called by nc_finalize().
2. Fix minor bug in ncgen3.l
3. fix memory leak in nc4info.c
4. add code to walk the .daprc triples and to replace protocol=
   fragment tag with a more general mode= tag.

Final Note:
Th inference code is still way too complicated. We need to move
to the validfile() model used by netcdf Java, where each
dispatcher is asked if it can process the file. This decentralizes
the inference code. This will be done after all the major new
dispatchers (PIO, Zarr, etc) have been implemented.
2019-01-01 18:27:36 -07:00
Ward Fisher
87110139f6 More synchronization of copyright stanzas. 2018-12-06 14:34:40 -07:00
Ward Fisher
3f83cc4926 Merge branch 'master' into inmem2.dmh 2018-05-16 14:24:19 -06:00
Dennis Heimbigner
3c7ffcc6d1 Fix https://github.com/Unidata/netcdf-c/issues/963
Fix https://github.com/Unidata/netcdf-c/issues/962

1. remove the --disable-diskless option since it is no
   longer needed. Similarly for CMakeLists.txt.
2. Fixed nc4files.c where BAIL and return were mixed
   leading to situation where cleanup code was not
   being invoked. This probably occurs elsewhere,
   but I did not find any specifically.
2018-05-11 15:30:19 -06:00
Ward Fisher
28ce3e4a8c Added fenceposts around bash scripts, excluding the bash.exe included with Windows 10 (for now) when searching to see if bash is available. 2018-04-26 14:38:56 -06:00
Dennis Heimbigner
f6a45b942e Merge branch 'master' into newhash1.dmh 2018-03-01 22:13:50 -07:00
Ward Fisher
c4551856d4 Simplified fix. 2018-02-28 12:20:53 -07:00
Ward Fisher
3ccce81190 Accomodating special characters in path name. 2018-02-28 12:18:20 -07:00
Dennis Heimbigner
8cb1fc4cfe This is the second step in refactoring the libsrc4 code.
The first was branch newhash0.dmh.

As with newhash0.dmh, these changes should be transparent.
2018-02-24 20:36:24 -07:00
Ward Fisher
ad58e5232a Small tweak to cmakelists.txt 2017-01-03 12:10:05 -07:00
Greg Sjaardema
362e28948d Add hashmap for quick retrieval of dim and var 2016-03-22 07:29:00 -06:00
Ward Fisher
ef586766e3 Added STDIO option to CMake-based build. 2015-10-09 13:06:32 -06:00
Ward Fisher
ac18154e98 Added test for function swap4b. 2015-07-27 15:31:23 -06:00
Ward Fisher
952b73e51e Modified how m4 is detected/handled, made it less a straight platform check. 2015-06-11 14:28:39 -06:00
Ward Fisher
6009ccef7e Trimmed some unnecessary files. 2015-04-13 01:42:49 -06:00
Ward Fisher
7f812b367e Manual merge of pull request https://github.com/Unidata/netcdf-c/pull/64 contributed by nschloe. Assorted CMake improvements. 2014-06-11 15:51:31 -06:00
Ward Fisher
05aaa4b376 Renamed man4 directory to docs. 2014-05-21 14:40:39 -06:00
Ward Fisher
44fae42214 Cleaned up indentation, white space in multiple CMakeLists.txt files. 2014-04-21 11:15:33 -06:00
Ward Fisher
5600bd327e Updated CMake file. 2014-02-06 11:35:35 -07:00
Ward Fisher
3a4d8252c3 Corrected an issue on OSX 'Mavericks'. 2013-10-21 17:39:13 -06:00
Ward Fisher
e636881aa7 Debugging an issue with LFS tests on Windows. 2013-09-03 14:22:55 -06:00
Ward Fisher
dae5e2f697 Added a short copyright message at head of a couple CMakeLists files; this will be propegated to the others.
Updated version in configure.ac to 4.3.1-rc2.
2013-08-15 09:43:59 -06:00
Ward Fisher
85465d8c10 Added stanza to only invoke m4 in non-MSVC environments. 2013-08-13 15:57:53 -06:00
Ward Fisher
43532c4193 Updated revision to rc2.
Refactored CMakeLists.txt in libsrc to generate, install netcdf.3 man page.
2013-08-13 15:42:45 -06:00
Ward Fisher
33d3d06971 Added initial 'make dist', 'make distcheck' support to
CMake-based builds.
2013-06-03 16:42:04 +00:00
Ward Fisher
da16fc1cde Fixed an issue with Windows builds
not compiling due to how
ssize_t was being detected/defined.
2013-05-24 21:19:07 +00:00
Ward Fisher
21523c8582 Merged changes from cmake branch. oc2 changes are just
'file property' changes, not sure what exactly.
2012-12-20 21:50:45 +00:00
Ward Fisher
ff631c8156 Merged latest changes from cmake branch.
o Improved CMake support.
o Cmake module compatibility (netcdf-config*.cmake.in).
2012-11-19 21:43:12 +00:00
Ward Fisher
057701e1fa Added man pages to 'make install' 2012-10-17 21:14:30 +00:00
Ward Fisher
d0a665f83f Including .c files generated from .m4 to accomodate
Windows users (who generally will lack m4).  This policy
can be re-evaluated if need be.
2012-10-02 16:45:27 +00:00
Ward Fisher
2de3388cf1 Additional CMake usage. 2012-09-13 18:27:23 +00:00
Ward Fisher
f820e5e5ee 2012-09-10 21:19:57 +00:00
Ward Fisher
776e179f23 Corrected CMakeList files. 2012-09-06 21:50:00 +00:00
Ward Fisher
04e61d5894 Added MSVC-compatibility items. 2012-08-27 21:19:25 +00:00
Ward Fisher
c8febf92ed Modified related to m4 file conversion macro. 2012-08-13 16:10:36 +00:00
Ward Fisher
14619ec4c4 2012-08-09 18:40:41 +00:00
Ward Fisher
0607b62375 Added coverage test flags to CMakeLists.txt files. 2012-08-09 17:07:41 +00:00
Ward Fisher
71075cee2e Additional changes in support of CMake. 2012-07-18 21:12:58 +00:00
Ward Fisher
d66293beca More changes in support of CMake support 2012-07-17 21:44:41 +00:00
Ward Fisher
2dc39563cc Changes in suport of CMake 2012-07-16 22:31:35 +00:00
Ward Fisher
ec4b3dd141 2012-07-13 16:49:20 +00:00
Ward Fisher
8f508bedba Updatec CMakeLists.txt 2012-07-13 16:37:14 +00:00
Ward Fisher
b2210e7166 Added missing CMakeLists.txt file. 2012-07-10 17:45:28 +00:00