You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
6.1 KiB
C++
162 lines
6.1 KiB
C++
// C++ informative line for the emacs editor: -*- C++ -*-
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* Copyright by The HDF Group. *
|
|
* All rights reserved. *
|
|
* *
|
|
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
|
* terms governing use, modification, and redistribution, is contained in *
|
|
* the COPYING file, which can be found at the root of the source code *
|
|
* distribution tree, or in https://www.hdfgroup.org/licenses. *
|
|
* If you do not have access to either file, you may request a copy from *
|
|
* help@hdfgroup.org. *
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
#ifndef H5DSCreatPropList_H
|
|
#define H5DSCreatPropList_H
|
|
|
|
namespace H5 {
|
|
|
|
// Class forwarding
|
|
class DataType;
|
|
class DataSpace;
|
|
|
|
/*! \class DSetCreatPropList
|
|
\brief Class DSetCreatPropList inherits from ObjCreatPropList and provides
|
|
wrappers for the HDF5 dataset creation property functions.
|
|
*/
|
|
// Inheritance: ObjCreatPropList -> PropList -> IdComponent
|
|
class H5_DLLCPP DSetCreatPropList : public ObjCreatPropList {
|
|
public:
|
|
///\brief Default dataset creation property list.
|
|
static const DSetCreatPropList &DEFAULT;
|
|
|
|
// Creates a dataset creation property list.
|
|
DSetCreatPropList();
|
|
|
|
// Queries whether all the filters set in this property list are
|
|
// available currently.
|
|
bool allFiltersAvail() const;
|
|
|
|
// Get space allocation time for this property.
|
|
H5D_alloc_time_t getAllocTime() const;
|
|
|
|
// Set space allocation time for dataset during creation.
|
|
void setAllocTime(H5D_alloc_time_t alloc_time) const;
|
|
|
|
// Retrieves the size of the chunks used to store a chunked layout dataset.
|
|
int getChunk(int max_ndims, hsize_t *dim) const;
|
|
|
|
// Sets the size of the chunks used to store a chunked layout dataset.
|
|
void setChunk(int ndims, const hsize_t *dim) const;
|
|
|
|
// Returns information about an external file.
|
|
void getExternal(unsigned idx, size_t name_size, char *name, off_t &offset, hsize_t &size) const;
|
|
|
|
// Returns the number of external files for a dataset.
|
|
int getExternalCount() const;
|
|
|
|
// Gets fill value writing time.
|
|
H5D_fill_time_t getFillTime() const;
|
|
|
|
// Sets fill value writing time for dataset.
|
|
void setFillTime(H5D_fill_time_t fill_time) const;
|
|
|
|
// Retrieves a dataset fill value.
|
|
void getFillValue(const DataType &fvalue_type, void *value) const;
|
|
|
|
// Sets a dataset fill value.
|
|
void setFillValue(const DataType &fvalue_type, const void *value) const;
|
|
|
|
// Returns information about a filter in a pipeline.
|
|
H5Z_filter_t getFilter(int filter_number, unsigned int &flags, size_t &cd_nelmts, unsigned int *cd_values,
|
|
size_t namelen, char name[], unsigned int &filter_config) const;
|
|
|
|
// Returns information about a filter in a pipeline given the filter id.
|
|
void getFilterById(H5Z_filter_t filter_id, unsigned int &flags, size_t &cd_nelmts,
|
|
unsigned int *cd_values, size_t namelen, char name[],
|
|
unsigned int &filter_config) const;
|
|
|
|
// Gets the layout of the raw data storage of the data that uses this
|
|
// property list.
|
|
H5D_layout_t getLayout() const;
|
|
|
|
// Sets the type of storage used to store the raw data for the
|
|
// dataset that uses this property list.
|
|
void setLayout(H5D_layout_t layout) const;
|
|
|
|
// Returns the number of filters in the pipeline.
|
|
int getNfilters() const;
|
|
|
|
// Checks if fill value has been defined for this property.
|
|
H5D_fill_value_t isFillValueDefined() const;
|
|
|
|
// Modifies the specified filter.
|
|
void modifyFilter(H5Z_filter_t filter_id, unsigned int flags, size_t cd_nelmts,
|
|
const unsigned int cd_values[]) const;
|
|
|
|
// Remove one or all filters from the filter pipeline.
|
|
void removeFilter(H5Z_filter_t filter_id) const;
|
|
|
|
// Sets compression method and compression level.
|
|
void setDeflate(int level) const;
|
|
|
|
// Adds an external file to the list of external files.
|
|
void setExternal(const char *name, off_t offset, hsize_t size) const;
|
|
|
|
// Adds a filter to the filter pipeline.
|
|
void setFilter(H5Z_filter_t filter, unsigned int flags = 0, size_t cd_nelmts = 0,
|
|
const unsigned int cd_values[] = NULL) const;
|
|
|
|
// Sets Fletcher32 checksum of EDC for this property list.
|
|
void setFletcher32() const;
|
|
|
|
// Sets method of the shuffle filter.
|
|
void setShuffle() const;
|
|
|
|
// Sets SZIP compression method.
|
|
void setSzip(unsigned int options_mask, unsigned int pixels_per_block) const;
|
|
|
|
// Sets N-bit compression method.
|
|
void setNbit() const;
|
|
|
|
// Maps elements of a virtual dataset to elements of the source dataset.
|
|
void setVirtual(const DataSpace &vspace, const char *src_fname, const char *src_dsname,
|
|
const DataSpace &sspace) const;
|
|
void setVirtual(const DataSpace &vspace, const H5std_string src_fname, const H5std_string src_dsname,
|
|
const DataSpace &sspace) const;
|
|
|
|
///\brief Returns this class name.
|
|
virtual H5std_string
|
|
fromClass() const override
|
|
{
|
|
return ("DSetCreatPropList");
|
|
}
|
|
|
|
// Copy constructor - same as the original DSetCreatPropList.
|
|
DSetCreatPropList(const DSetCreatPropList &orig);
|
|
|
|
// Creates a copy of an existing dataset creation property list
|
|
// using the property list id.
|
|
DSetCreatPropList(const hid_t plist_id);
|
|
|
|
// Noop destructor.
|
|
virtual ~DSetCreatPropList() override;
|
|
|
|
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
|
|
|
// Deletes the global constant, should only be used by the library
|
|
static void deleteConstants();
|
|
|
|
private:
|
|
static DSetCreatPropList *DEFAULT_;
|
|
|
|
// Creates the global constant, should only be used by the library
|
|
static DSetCreatPropList *getConstant();
|
|
|
|
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
|
|
|
}; // end of DSetCreatPropList
|
|
} // namespace H5
|
|
|
|
#endif // H5DSCreatPropList_H
|