123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- /*********************************************************************
- * Copyright 1993, UCAR/Unidata
- * See netcdf/COPYRIGHT file for copying and redistribution conditions.
- * $Header: /upc/share/CVS/netcdf-3/libncdap3/ncd3dispatch.c,v 1.7 2010/05/27 21:34:09 dmh Exp $
- *********************************************************************/
- #include "config.h"
- #include <stdlib.h>
- #include <string.h>
- #include "nc.h"
- #include "ncdap3.h"
- #include "ncdispatch.h"
- #include "ncd3dispatch.h"
- static int
- NCD3_create(const char *path, int cmode,
- size_t initialsz, int basepe, size_t *chunksizehintp,
- int use_parallel, void* mpidata,
- NC_Dispatch*,NC** ncp);
- static int NCD3_redef(int ncid);
- static int NCD3__enddef(int ncid, size_t h_minfree, size_t v_align, size_t v_minfree, size_t r_align);
- static int NCD3_sync(int ncid);
- static int NCD3_abort(int ncid);
- static int NCD3_put_vara(int ncid, int varid,
- const size_t *start, const size_t *edges0,
- const void *value0,
- nc_type memtype);
- static int NCD3_get_vara(int ncid, int varid,
- const size_t *start, const size_t *edges,
- void *value,
- nc_type memtype);
- static int NCD3_put_vars(int ncid, int varid,
- const size_t *start, const size_t *edges, const ptrdiff_t* stride,
- const void *value0, nc_type memtype);
- static int NCD3_get_vars(int ncid, int varid,
- const size_t *start, const size_t *edges, const ptrdiff_t* stride,
- void *value, nc_type memtype);
- NC_Dispatch NCD3_dispatch_base = {
- NC_DISPATCH_NC3 | NC_DISPATCH_NCD,
- /* Note: we are using the standard substrate struct NC creator */
- NULL,
- NCD3_create,
- NCD3_open,
- NCD3_redef,
- NCD3__enddef,
- NCD3_sync,
- NCD3_abort,
- NCD3_close,
- NULL, /*set_fill*/
- NULL, /*inq_base_pe*/
- NULL, /*set_base_pe*/
- NULL, /*inq_format*/
- NULL, /*inq*/
- NULL, /*inq_type*/
- NULL, /*def_dim*/
- NULL, /*inq_dimid*/
- NULL, /*inq_dim*/
- NULL, /*inq_unlimdim*/
- NULL, /*rename_dim*/
- NULL, /*inq_att*/
- NULL, /*inq_attid*/
- NULL, /*inq_attname*/
- NULL, /*rename_att*/
- NULL, /*del_att*/
- NULL, /*get_att*/
- NULL, /*put_att*/
- NULL, /*def_var*/
- NULL, /*inq_varid*/
- NULL, /*rename_var*/
- NCD3_get_vara,
- NCD3_put_vara,
- NCD3_get_vars,
- NCD3_put_vars,
- NCDEFAULT_get_varm,
- NCDEFAULT_put_varm,
- NULL, /*inq_var_all*/
- #ifdef USE_NETCDF4
- NULL, /*show_metadata*/
- NULL, /*inq_unlimdims*/
- NULL, /*var_par_access*/
- NULL, /*inq_ncid*/
- NULL, /*inq_grps*/
- NULL, /*inq_grpname*/
- NULL, /*inq_grpname_full*/
- NULL, /*inq_grp_parent*/
- NULL, /*inq_grp_full_ncid*/
- NULL, /*inq_varids*/
- NULL, /*inq_dimids*/
- NULL, /*inq_typeids*/
- NULL, /*inq_type_equal*/
- NULL, /*def_grp*/
- NULL, /*inq_user_type*/
- NULL, /*inq_typeid*/
- NULL, /*def_compound*/
- NULL, /*insert_compound*/
- NULL, /*insert_array_compound*/
- NULL, /*inq_compound_field*/
- NULL, /*inq_compound_fieldindex*/
- NULL, /*def_vlen*/
- NULL, /*put_vlen_element*/
- NULL, /*get_vlen_element*/
- NULL, /*def_enum*/
- NULL, /*insert_enum*/
- NULL, /*inq_enum_member*/
- NULL, /*inq_enum_ident*/
- NULL, /*def_opaque*/
- NULL, /*def_var_deflate*/
- NULL, /*def_var_fletcher32*/
- NULL, /*def_var_chunking*/
- NULL, /*def_var_fill*/
- NULL, /*def_var_endian*/
- NULL, /*set_var_chunk_cache*/
- NULL, /*get_var_chunk_cache*/
- #endif /*USE_NETCDF4*/
- };
- NC_Dispatch* NCD3_dispatch_table = NULL; /* moved here from ddispatch.c */
- NC_Dispatch NCD3_dispatcher; /* overlay result */
- int
- NCD3_initialize(void)
- {
- /* Create our dispatch table as the merge of NCD3 table and NCSUBSTRATE */
- /* watch the order because we want NCD3 to overwrite NCSUBSTRATE */
- NC_dispatch_overlay(&NCD3_dispatch_base, NCSUBSTRATE_dispatch_table, &NCD3_dispatcher);
- NCD3_dispatch_table = &NCD3_dispatcher;
- return NC_NOERR;
- }
- static int
- NCD3_redef(int ncid)
- {
- return (NC_EPERM);
- }
- static int
- NCD3__enddef(int ncid, size_t h_minfree, size_t v_align, size_t v_minfree, size_t r_align)
- {
- return (NC_EPERM);
- }
- static int
- NCD3_sync(int ncid)
- {
- return (NC_EINVAL);
- }
- static int
- NCD3_abort(int ncid)
- {
- return NCD3_close(ncid);
- }
- static int
- NCD3_create(const char *path, int cmode,
- size_t initialsz, int basepe, size_t *chunksizehintp,
- int use_parallel, void* mpidata,
- NC_Dispatch* dispatch, NC** ncp)
- {
- return NC_EPERM;
- }
- static int
- NCD3_put_vara(int ncid, int varid,
- const size_t *start, const size_t *edges,
- const void *value,
- nc_type memtype)
- {
- return NC_EPERM;
- }
- static int
- NCD3_get_vara(int ncid, int varid,
- const size_t *start, const size_t *edges,
- void *value,
- nc_type memtype)
- {
- int stat = nc3d_getvarx(ncid, varid, start, edges, nc_ptrdiffvector1, value,memtype);
- return stat;
- }
- static int
- NCD3_put_vars(int ncid, int varid,
- const size_t *start, const size_t *edges, const ptrdiff_t* stride,
- const void *value0, nc_type memtype)
- {
- return NC_EPERM;
- }
- static int
- NCD3_get_vars(int ncid, int varid,
- const size_t *start, const size_t *edges, const ptrdiff_t* stride,
- void *value, nc_type memtype)
- {
- int stat = nc3d_getvarx(ncid, varid, start, edges, stride, value, memtype);
- return stat;
- }
|