Include dependency graph for MBNcDispatch.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Namespaces | |
| moab | |
| Class representing axis-aligned bounding box. | |
Enumerations | |
| enum | moab::NcBackend { moab::NCB_NONE = 0 , moab::NCB_NETCDF_SERIAL = 1 , moab::NCB_PNETCDF = 2 , moab::NCB_NETCDF_PAR = 3 , moab::NCB_BUFFERED = 4 } |
| Identifies which underlying NetCDF library will service a given file. Encoded into the high nibble of every tagged file id this layer hands back, so dispatch is branch-free and stateless. More... | |
| enum | moab::NcFileFormat { moab::NCFMT_UNKNOWN = 0 , moab::NCFMT_CLASSIC = 1 , moab::NCFMT_NETCDF4 = 2 } |
| File format detected from the on-disk magic bytes. Independent of which library will end up servicing the file (a classic file can be opened by either PNetCDF or libnetcdf-parallel, for instance). More... | |
Functions | |
| int | moab::mbnc_make_tagged (int libId, NcBackend backend) |
| int | moab::mbnc_lib_id (int taggedId) |
| NcBackend | moab::mbnc_backend_of (int taggedId) |
| int | moab::mbnc_detect_format (const char *path) |
| Inspect the file header to classify NetCDF format. Reads only the first 8 bytes — relies on the well-known "CDF\xNN" and HDF5 magic signatures. Returns NCFMT_UNKNOWN if the file cannot be opened or the signature does not match. Safe to call from any single rank. More... | |
| NcBackend | moab::mbnc_choose_backend_for_read (int format, int mpi_size) |
| Pick the best available backend for reading a file of the given format with the given MPI size. Returns NCB_NONE if no compatible backend is configured (caller should error out with a precise message naming the missing capability). More... | |
| NcBackend | moab::mbnc_choose_backend_for_write (int requested_format, int mpi_size) |
| Pick a backend for writing. The format is provided by the caller (typically derived from a user option / file extension), not probed. More... | |
| int | moab::mbnc_open (const char *path, int omode, int *taggedFileId) |
| Serial open. Tags the returned id as NCB_NETCDF_SERIAL. More... | |
| int | moab::mbnc_create (const char *path, int cmode, int *taggedFileId) |
| Serial create. More... | |
| int | moab::mbnc_close (int taggedFileId) |
| Close. Untags + dispatches. More... | |
| int | moab::mbnc_redef (int taggedFileId) |
| int | moab::mbnc_enddef (int taggedFileId) |
| int | moab::mbnc_def_dim (int taggedFileId, const char *name, size_t len, int *dimid) |
| int | moab::mbnc_def_var (int taggedFileId, const char *name, nc_type xtype, int ndims, const int *dimids, int *varid) |
| int | moab::mbnc_begin_indep_data (int taggedFileId) |
| int | moab::mbnc_end_indep_data (int taggedFileId) |
| int | moab::mbnc_inq_natts (int taggedFileId, int *nattsp) |
| int | moab::mbnc_inq_ndims (int taggedFileId, int *ndimsp) |
| int | moab::mbnc_inq_nvars (int taggedFileId, int *nvarsp) |
| int | moab::mbnc_inq_dimid (int taggedFileId, const char *name, int *dimidp) |
| int | moab::mbnc_inq_dim (int taggedFileId, int dimid, char *name, size_t *lenp) |
| int | moab::mbnc_inq_dimlen (int taggedFileId, int dimid, size_t *lenp) |
| int | moab::mbnc_inq_varid (int taggedFileId, const char *name, int *varidp) |
| int | moab::mbnc_inq_varname (int taggedFileId, int varid, char *name) |
| int | moab::mbnc_inq_vartype (int taggedFileId, int varid, nc_type *xtypep) |
| int | moab::mbnc_inq_varndims (int taggedFileId, int varid, int *ndimsp) |
| int | moab::mbnc_inq_vardimid (int taggedFileId, int varid, int *dimids) |
| int | moab::mbnc_inq_varnatts (int taggedFileId, int varid, int *nattsp) |
| int | moab::mbnc_inq_attname (int taggedFileId, int varid, int attnum, char *name) |
| int | moab::mbnc_inq_att (int taggedFileId, int varid, const char *name, nc_type *xtypep, size_t *lenp) |
| int | moab::mbnc_get_att_text (int taggedFileId, int varid, const char *name, char *value) |
| int | moab::mbnc_get_att_int (int taggedFileId, int varid, const char *name, int *value) |
| int | moab::mbnc_get_att_short (int taggedFileId, int varid, const char *name, short *value) |
| int | moab::mbnc_get_att_long (int taggedFileId, int varid, const char *name, long *value) |
| int | moab::mbnc_get_att_float (int taggedFileId, int varid, const char *name, float *value) |
| int | moab::mbnc_get_att_double (int taggedFileId, int varid, const char *name, double *value) |
| int | moab::mbnc_put_att_text (int taggedFileId, int varid, const char *name, size_t len, const char *value) |
| int | moab::mbnc_put_att_int (int taggedFileId, int varid, const char *name, nc_type xtype, size_t len, const int *value) |
| int | moab::mbnc_put_att_short (int taggedFileId, int varid, const char *name, nc_type xtype, size_t len, const short *value) |
| int | moab::mbnc_put_att_float (int taggedFileId, int varid, const char *name, nc_type xtype, size_t len, const float *value) |
| int | moab::mbnc_put_att_double (int taggedFileId, int varid, const char *name, nc_type xtype, size_t len, const double *value) |
| int | moab::mbnc_get_vara_double (int taggedFileId, int varid, const size_t *start, const size_t *count, double *data) |
| int | moab::mbnc_get_vara_int (int taggedFileId, int varid, const size_t *start, const size_t *count, int *data) |
| int | moab::mbnc_get_vara_long (int taggedFileId, int varid, const size_t *start, const size_t *count, long *data) |
| int | moab::mbnc_get_vara_text (int taggedFileId, int varid, const size_t *start, const size_t *count, char *data) |
| int | moab::mbnc_get_vars_double (int taggedFileId, int varid, const size_t *start, const size_t *count, const ptrdiff_t *stride, double *data) |
| int | moab::mbnc_put_vara_double (int taggedFileId, int varid, const size_t *start, const size_t *count, const double *data) |
| int | moab::mbnc_put_vara_int (int taggedFileId, int varid, const size_t *start, const size_t *count, const int *data) |
| int | moab::mbnc_put_vara_text (int taggedFileId, int varid, const size_t *start, const size_t *count, const char *data) |
| int | moab::mbnc_get_vara_double_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, double *data) |
| int | moab::mbnc_get_vara_int_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, int *data) |
| int | moab::mbnc_get_vara_long_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, long *data) |
| int | moab::mbnc_get_vara_text_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, char *data) |
| int | moab::mbnc_get_vars_double_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, const ptrdiff_t *stride, double *data) |
| int | moab::mbnc_put_vara_double_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, const double *data) |
| int | moab::mbnc_put_vara_int_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, const int *data) |
| int | moab::mbnc_put_vara_text_indep (int taggedFileId, int varid, const size_t *start, const size_t *count, const char *data) |
| int | moab::mbnc_iget_vara_double (int taggedFileId, int varid, const size_t *start, const size_t *count, double *data, int *req) |
| int | moab::mbnc_iget_vara_int (int taggedFileId, int varid, const size_t *start, const size_t *count, int *data, int *req) |
| int | moab::mbnc_iput_vara_double (int taggedFileId, int varid, const size_t *start, const size_t *count, const double *data, int *req) |
| int | moab::mbnc_iput_vara_int (int taggedFileId, int varid, const size_t *start, const size_t *count, const int *data, int *req) |
| int | moab::mbnc_wait_all (int taggedFileId, int nreq, int *requests, int *statuses) |
Variables | |
| constexpr int | moab::MBNC_TAG_BITS = 4 |
| Bits reserved for the backend tag in the top of a tagged file id. 4 bits leaves 28 bits (268M) for the underlying library file id, which is far more than any NetCDF library will hand out in practice. More... | |
| constexpr int | moab::MBNC_TAG_SHIFT = 32 - MBNC_TAG_BITS |
| constexpr int | moab::MBNC_ID_MASK = ( 1 << MBNC_TAG_SHIFT ) - 1 |
| constexpr int | moab::MBNC_REQ_NULL = -1 |
| sentinel for "no real request pending" More... | |