Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove obsolete and deprecated base_pe functions from the dispatch table #1468

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ This file contains a high-level description of this package's evolution. Release

## 4.7.1 - TBD

* [Enhancement] Remove obsolete and deprecated functions
nc_set_base_pe() and nc_inq_base_pe() from the dispatch table. (Both
functions are still supported in the library, this is an internal
change only.)
See [GitHub #1436](https://github.com/Unidata/netcdf-c/issues/1468)

* [Bug Fix] Reverted nccopy behavior so that if no -c parameters
are given, then any default chunking is left to the netcdf-c library
to decide.
Expand Down
4 changes: 2 additions & 2 deletions hdf4_test/tst_hdf4_extra.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@ main(int argc, char **argv)
if (nc_inq(ncid + TEST_VAL_42, NULL, NULL, NULL, NULL) != NC_EBADID) ERR;

/* These only work for netCDF-3 files. */
if (nc_set_base_pe(ncid, 0) != NC_ENOTNC3) ERR;
if (nc_inq_base_pe(ncid, NULL) != NC_ENOTNC3) ERR;
if (nc_set_base_pe(ncid, 0)) ERR;
if (nc_inq_base_pe(ncid, NULL)) ERR;

/* Attempt to write. */
if (nc_rename_att(ncid, NC_GLOBAL, ATT_NAME, NAME_DUMB) != NC_EPERM) ERR;
Expand Down
11 changes: 0 additions & 11 deletions hdf4_test/tst_interops3.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,6 @@ check_inq_format(int ncid, int expected_format, int expected_extended_format, in
if (mode != expected_mode) ERR;
if (extended_format != expected_extended_format) ERR;

/* Nothing to do with inq_format, but let's check the base_pe
* functions. */
if (expected_format == NC_FORMAT_CLASSIC || expected_format == NC_FORMAT_64BIT_OFFSET ||
expected_format == NC_FORMAT_CDF5) {
if (nc_set_base_pe(ncid, 0)) ERR;
if (nc_inq_base_pe(ncid, NULL)) ERR;
} else {
if (nc_set_base_pe(ncid, 0) != NC_ENOTNC3) ERR;
if (nc_inq_base_pe(ncid, NULL) != NC_ENOTNC3) ERR;
}

return 0;
}

Expand Down
6 changes: 0 additions & 6 deletions include/nc3dispatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,6 @@ extern "C" {
extern int
NC3_set_fill(int ncid, int fillmode, int *old_modep);

extern int
NC3_set_base_pe(int ncid, int pe);

extern int
NC3_inq_base_pe(int ncid, int *pe);

extern int
NC3_inq_format(int ncid, int *formatp);

Expand Down
6 changes: 0 additions & 6 deletions include/nc4dispatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,6 @@ extern "C" {
EXTERNL int
NC4_set_fill(int ncid, int fillmode, int *old_modep);

EXTERNL int
NC4_set_base_pe(int ncid, int pe);

EXTERNL int
NC4_inq_base_pe(int ncid, int *pe);

EXTERNL int
NC4_inq_format(int ncid, int *formatp);

Expand Down
4 changes: 0 additions & 4 deletions include/netcdf_dispatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ struct NC_Dispatch
int (*abort)(int);
int (*close)(int, void *);
int (*set_fill)(int, int, int *);
int (*inq_base_pe)(int, int *);
int (*set_base_pe)(int, int);
int (*inq_format)(int, int*);
int (*inq_format_extended)(int, int *, int *);

Expand Down Expand Up @@ -163,8 +161,6 @@ EXTERNL int NC_RO_set_fill(int ncid, int fillmode, int *old_modep);

/* These functions are for dispatch layers that don't implement these
* legacy functions. They return NC_ENOTNC3. */
EXTERNL int NC_NOTNC3_set_base_pe(int ncid, int pe);
EXTERNL int NC_NOTNC3_inq_base_pe(int ncid, int *pe);
EXTERNL int NC_NOTNC3_put_varm(int ncid, int varid, const size_t * start,
const size_t *edges, const ptrdiff_t *stride,
const ptrdiff_t *imapp, const void *value0,
Expand Down
18 changes: 0 additions & 18 deletions libdap2/ncd2dispatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,6 @@ NCD2_sync,
NCD2_abort,
NCD2_close,
NCD2_set_fill,
NCD2_inq_base_pe,
NCD2_set_base_pe,
NCD2_inq_format,
NCD2_inq_format_extended, /*inq_format_extended*/

Expand Down Expand Up @@ -2257,12 +2255,6 @@ NCD2_set_fill(int ncid, int fillmode, int* old_modep)
return THROW(NC_EPERM);
}

int
NCD2_set_base_pe(int ncid, int pe)
{
return THROW(NC_EPERM);
}

int
NCD2_def_dim(int ncid, const char* name, size_t len, int* idp)
{
Expand All @@ -2287,16 +2279,6 @@ NCD2_def_var(int ncid, const char *name,
Following functions basically return the netcdf-3 value WRT to the nc3id.
*/

int
NCD2_inq_base_pe(int ncid, int* pe)
{
NC* drno;
int ret;
if((ret = NC_check_id(ncid, (NC**)&drno)) != NC_NOERR) return THROW(ret);
ret = nc_inq_base_pe(getnc3id(drno), pe);
return THROW(ret);
}

int
NCD2_inq_format(int ncid, int* formatp)
{
Expand Down
6 changes: 0 additions & 6 deletions libdap2/ncd2dispatch.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,6 @@ NCD2_inq_format_extended(int ncid, int* formatp, int* modep);
extern int
NCD2_set_fill(int ncid, int fillmode, int *old_modep);

extern int
NCD2_set_base_pe(int ncid, int pe);

extern int
NCD2_inq_base_pe(int ncid, int *pe);

extern int
NCD2_inq_format(int ncid, int *formatp);

Expand Down
20 changes: 0 additions & 20 deletions libdap4/ncd4dispatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,6 @@ NCD4_set_fill(int ncid, int fillmode, int* old_modep)
return (NC_EPERM);
}

static int
NCD4_set_base_pe(int ncid, int pe)
{
return (NC_EPERM);
}

static int
NCD4_def_dim(int ncid, const char* name, size_t len, int* idp)
{
Expand Down Expand Up @@ -253,18 +247,6 @@ Following functions basically return the netcdf-4 value WRT to the nc4id.
However, it is necessary to modify the grpid(ncid) to point to the substrate.
*/

static int
NCD4_inq_base_pe(int ncid, int* pe)
{
NC* ncp;
int ret = NC_NOERR;
int substrateid;
if((ret = NC_check_id(ncid, (NC**)&ncp)) != NC_NOERR) return (ret);
substrateid = makenc4id(ncp,ncid);
ret = nc_inq_base_pe(substrateid, pe);
return (ret);
}

static int
NCD4_inq_format(int ncid, int* formatp)
{
Expand Down Expand Up @@ -806,8 +788,6 @@ NCD4_sync,
NCD4_abort,
NCD4_close,
NCD4_set_fill,
NCD4_inq_base_pe,
NCD4_set_base_pe,
NCD4_inq_format,
NCD4_inq_format_extended, /*inq_format_extended*/

Expand Down
42 changes: 21 additions & 21 deletions libdispatch/dfile.c
Original file line number Diff line number Diff line change
Expand Up @@ -1454,8 +1454,8 @@ nc_set_fill(int ncid, int fillmode, int *old_modep)
* @internal Learn base PE.
*
* @deprecated This function was used in the old days with the Cray at
* NCAR. The Cray is long gone, and this call is supported only for
* backward compatibility.
* NCAR. The Cray is long gone, and this call is now meaningless. The
* value returned for pe is always 0.
*
* @param ncid File and group ID.
* @param pe Pointer for base PE.
Expand All @@ -1470,7 +1470,8 @@ nc_inq_base_pe(int ncid, int *pe)
NC* ncp;
int stat = NC_check_id(ncid, &ncp);
if(stat != NC_NOERR) return stat;
return ncp->dispatch->inq_base_pe(ncid,pe);
if (pe) *pe = 0;
return NC_NOERR;
}

/**
Expand All @@ -1493,26 +1494,25 @@ nc_set_base_pe(int ncid, int pe)
NC* ncp;
int stat = NC_check_id(ncid, &ncp);
if(stat != NC_NOERR) return stat;
return ncp->dispatch->set_base_pe(ncid,pe);
return NC_NOERR;
}

/** \ingroup datasets
Inquire about the binary format of a netCDF file
as presented by the API.

This function returns the (rarely needed) format version.

\param ncid NetCDF ID, from a previous call to nc_open() or
nc_create().

\param formatp Pointer to location for returned format version, one of
NC_FORMAT_CLASSIC, NC_FORMAT_64BIT_OFFSET, NC_FORMAT_CDF5, NC_FORMAT_NETCDF4,
NC_FORMAT_NETCDF4_CLASSIC.

\returns ::NC_NOERR No error.

\returns ::NC_EBADID Invalid ncid passed.

/**
* @ingroup datasets
* Inquire about the binary format of a netCDF file
* as presented by the API.
*
* This function returns the (rarely needed) format version.
*
* @param ncid NetCDF ID, from a previous call to nc_open() or
* nc_create().
* @param formatp Pointer to location for returned format version, one
* of NC_FORMAT_CLASSIC, NC_FORMAT_64BIT_OFFSET, NC_FORMAT_CDF5,
* NC_FORMAT_NETCDF4, NC_FORMAT_NETCDF4_CLASSIC.
*
* @returns ::NC_NOERR No error.
* @returns ::NC_EBADID Invalid ncid passed.
* @author Dennis Heimbigner
*/
int
nc_inq_format(int ncid, int *formatp)
Expand Down
32 changes: 1 addition & 31 deletions libdispatch/dnotnc3.c
Original file line number Diff line number Diff line change
@@ -1,44 +1,14 @@
/* Copyright 2018, UCAR/Unidata See netcdf/COPYRIGHT file for copying
* and redistribution conditions.*/
/**
* @file @internal This file handles the *_base_pe()
* @file @internal This file handles the *_varm()
* functions for dispatch layers that need to return ::NC_ENOTNC3.
*
* @author Ed Hartnett
*/

#include "nc4dispatch.h"

/**
* @internal This function only does anything for netcdf-3 files.
*
* @param ncid Ignored.
* @param pe Ignored.
*
* @return ::NC_ENOTNC3 Not a netCDF classic format file.
* @author Ed Hartnett
*/
int
NC_NOTNC3_set_base_pe(int ncid, int pe)
{
return NC_ENOTNC3;
}

/**
* @internal This function only does anything for netcdf-3 files.
*
* @param ncid Ignored.
* @param pe Ignored.
*
* @return ::NC_ENOTNC3 Not a netCDF classic format file.
* @author Ed Hartnett
*/
int
NC_NOTNC3_inq_base_pe(int ncid, int *pe)
{
return NC_ENOTNC3;
}

/**
* @internal This function only does anything for netcdf-3 files.
*
Expand Down
2 changes: 0 additions & 2 deletions libhdf4/hdf4dispatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ static const NC_Dispatch HDF4_dispatcher = {
NC_HDF4_abort,
NC_HDF4_close,
NC_RO_set_fill,
NC_NOTNC3_inq_base_pe,
NC_NOTNC3_set_base_pe,
NC_HDF4_inq_format,
NC_HDF4_inq_format_extended,

Expand Down
2 changes: 0 additions & 2 deletions libhdf5/hdf5dispatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ static const NC_Dispatch HDF5_dispatcher = {
NC4_abort,
NC4_close,
NC4_set_fill,
NC_NOTNC3_inq_base_pe,
NC_NOTNC3_set_base_pe,
NC4_inq_format,
NC4_inq_format_extended,

Expand Down
2 changes: 0 additions & 2 deletions libsrc/nc3dispatch.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,6 @@ NC3_sync,
NC3_abort,
NC3_close,
NC3_set_fill,
NC3_inq_base_pe,
NC3_set_base_pe,
NC3_inq_format,
NC3_inq_format_extended,

Expand Down
68 changes: 0 additions & 68 deletions libsrc/nc3internal.c
Original file line number Diff line number Diff line change
Expand Up @@ -1608,74 +1608,6 @@ void NC_increase_numrecs(NC *nc3, size_t nrecs)

#endif /* LOCKNUMREC */

/* everyone in communicator group will be executing this */
/*ARGSUSED*/
int
NC3_set_base_pe(int ncid, int pe)
{
#if _CRAYMPP && defined(LOCKNUMREC)
int status;
NC *nc;
NC3_INFO* nc3;
shmem_t numrecs;

if ((status = NC_check_id(ncid, &nc) != NC_NOERR) {
return status;
}
if (pe < 0 || pe >= _num_pes()) {
return NC_EINVAL; /* invalid base pe */
}
nc3 = NC3_DATA(nc);

numrecs = (shmem_t) NC_get_numrecs(nc3);

nc3->lock[LOCKNUMREC_VALUE] = (ushmem_t) numrecs;

/* update serving & lock values for a "smooth" transition */
/* note that the "real" server will being doing this as well */
/* as all the rest in the group */
/* must have synchronization before & after this step */
shmem_short_get(
(shmem_t *) nc3->lock + LOCKNUMREC_SERVING,
(shmem_t *) nc3->lock + LOCKNUMREC_SERVING,
1, nc3->lock[LOCKNUMREC_BASEPE]);

shmem_short_get(
(shmem_t *) nc3->lock + LOCKNUMREC_LOCK,
(shmem_t *) nc3->lock + LOCKNUMREC_LOCK,
1, nc3->lock[LOCKNUMREC_BASEPE]);

/* complete transition */
nc3->lock[LOCKNUMREC_BASEPE] = (ushmem_t) pe;

#endif /* _CRAYMPP && LOCKNUMREC */
return NC_NOERR;
}

/*ARGSUSED*/
int
NC3_inq_base_pe(int ncid, int *pe)
{
#if _CRAYMPP && defined(LOCKNUMREC)
int status;
NC *nc;
NC3_INFO* nc3;

if ((status = NC_check_id(ncid, &nc)) != NC_NOERR) {
return status;
}

*pe = (int) nc3->lock[LOCKNUMREC_BASEPE];
nc3 = NC3_DATA(nc);
#else
/*
* !_CRAYMPP, only pe 0 is valid
*/
if (pe) *pe = 0;
#endif /* _CRAYMPP && LOCKNUMREC */
return NC_NOERR;
}

/**
* Return the file format.
*
Expand Down
Loading