Dispatch Layer and the NetCDF Architecture Dr. Dennis Heimbigner Unidata netCDF Workshop July 26, 2011
Overview Goal: netCDF as universal API Dispatch Architecture Dispatch table selection rules Questions
Goal: netCDF as the universal API Actual semantics of nc_open or nc_create determined by choice of dispatch table Currently support: netCDF-3 (classic), netCDF-4, OPeNDAP, and CDM-Remote Proposed additions: HDF-4 EOS, DAP4, RPC Allow for user-community defined extensions
Dispatch Architecture Path Mode flags Path Prefix Existing File Client Program nc_open() nc_get_var() … nc_close() netCDF API Wrapper Procedures nc_open() nc_get_var() … nc_close Dispatch Table For e.g. Netcdf-4
Dispatch Selection Rules The dispatch table is chosen in the NC_create and the NC_open wrapper procedures The decision is based on the following pieces of information. Path – regular file, url, or something else Path prefix – e.g. [cdmremote]<url> Mode argument – a specific flag (e.g. NC_NETCDF4) Contents of existing file (when using nc_open) NC_set_dispatch_override() Environment variables (not currently used)
Questions?