16#ifdef H5_HAVE_PARALLEL
108template <
typename T,
typename U>
109T get_plist(
const U& obj, hid_t (*f)(hid_t)) {
110 auto hid = f(obj.getId());
132 template <
typename T,
typename U>
133 friend T details::get_plist(
const U&, hid_t (*f)(hid_t));
145#if HIGHFIVE_HAS_CONCEPTS && __cplusplus >= 202002L
152#define PropertyInterface typename
159template <PropertyType T>
173 template <PropertyInterface P>
174 void add(
const P& property);
189 plist._initializeIfNeeded();
218template <PropertyType T>
221 template <
typename F,
typename... Args>
222 void add(
const F& funct,
const Args&... args);
225#ifdef H5_HAVE_PARALLEL
238 void apply(
const hid_t list)
const;
245#if H5_VERSION_GE(1, 10, 0)
251class MPIOCollectiveMetadata {
253 explicit MPIOCollectiveMetadata(
bool collective =
true);
256 bool isCollectiveRead()
const;
257 bool isCollectiveWrite()
const;
262 void apply(hid_t plist)
const;
264 bool collective_read_;
265 bool collective_write_;
281class MPIOCollectiveMetadataRead {
283 explicit MPIOCollectiveMetadataRead(
bool collective =
true);
284 explicit MPIOCollectiveMetadataRead(
const FileAccessProps& plist);
286 bool isCollective()
const;
289 friend FileAccessProps;
290 friend MPIOCollectiveMetadata;
292 void apply(hid_t plist)
const;
307class MPIOCollectiveMetadataWrite {
309 explicit MPIOCollectiveMetadataWrite(
bool collective =
true);
310 explicit MPIOCollectiveMetadataWrite(
const FileAccessProps& plist);
312 bool isCollective()
const;
316 friend MPIOCollectiveMetadata;
318 void apply(hid_t plist)
const;
347 std::pair<H5F_libver_t, H5F_libver_t>
getVersion()
const;
351 void apply(
const hid_t list)
const;
371 void apply(
const hid_t list)
const;
375#if H5_VERSION_GE(1, 10, 1)
382class FileSpaceStrategy {
390 FileSpaceStrategy(H5F_fspace_strategy_t strategy, hbool_t persist, hsize_t threshold);
393 H5F_fspace_strategy_t getStrategy()
const;
394 hbool_t getPersist()
const;
395 hsize_t getThreshold()
const;
400 void apply(
const hid_t list)
const;
402 H5F_fspace_strategy_t _strategy;
416class FileSpacePageSize {
422 explicit FileSpacePageSize(hsize_t page_size);
423 explicit FileSpacePageSize(
const FileCreateProps& fcpl);
425 hsize_t getPageSize()
const;
428 friend FileCreateProps;
429 void apply(
const hid_t list)
const;
434#ifndef H5_HAVE_PARALLEL
446class PageBufferSize {
453 explicit PageBufferSize(
size_t page_buffer_size,
454 unsigned min_meta_percent = 0,
455 unsigned min_raw_percent = 0);
457 explicit PageBufferSize(
const FileAccessProps& fapl);
459 size_t getPageBufferSize()
const;
460 unsigned getMinMetaPercent()
const;
461 unsigned getMinRawPercent()
const;
466 void apply(hid_t list)
const;
468 size_t _page_buffer_size;
496 void apply(hid_t hid)
const;
505 explicit Chunking(
const std::vector<hsize_t>& dims);
506 Chunking(
const std::initializer_list<hsize_t>& items);
508 template <
typename... Args>
509 explicit Chunking(hsize_t item, Args... args);
517 void apply(hid_t hid)
const;
518 std::vector<hsize_t> _dims;
524 explicit Deflate(
unsigned level);
529 void apply(hid_t hid)
const;
530 const unsigned _level;
536 explicit Szip(
unsigned options_mask = H5_SZIP_EC_OPTION_MASK,
537 unsigned pixels_per_block = H5_SZIP_MAX_PIXELS_PER_BLOCK);
544 void apply(hid_t hid)
const;
545 const unsigned _options_mask;
546 const unsigned _pixels_per_block;
556 void apply(hid_t hid)
const;
574 void apply(hid_t dcpl)
const;
576 H5D_alloc_time_t _alloc_time;
587 const size_t cacheSize,
588 const double w0 =
static_cast<double>(H5D_CHUNK_CACHE_W0_DEFAULT));
594 double getW0()
const;
598 void apply(hid_t hid)
const;
620 void apply(hid_t hid)
const;
624#ifdef H5_HAVE_PARALLEL
637 void apply(hid_t hid)
const;
663 std::pair<uint32_t, uint32_t>
getCause()
const;
667 uint32_t _local_cause;
668 uint32_t _global_cause;
705 void apply(hid_t hid)
const;
739 void apply(hid_t hid)
const;
741 unsigned _max_compact;
When are datasets allocated?
Definition H5PropertyList.hpp:565
H5D_alloc_time_t getAllocationTime()
Definition H5PropertyList_misc.hpp:361
AllocationTime(H5D_alloc_time_t alloc_time)
Definition H5PropertyList_misc.hpp:350
Set threshold for attribute storage.
Definition H5PropertyList.hpp:721
unsigned max_compact() const
Definition H5PropertyList_misc.hpp:488
AttributePhaseChange(unsigned max_compact, unsigned min_dense)
Create the property from the threshold values.
Definition H5PropertyList_misc.hpp:480
unsigned min_dense() const
Definition H5PropertyList_misc.hpp:492
Definition H5PropertyList.hpp:582
size_t getNumSlots() const
Definition H5PropertyList_misc.hpp:378
Caching(const size_t numSlots, const size_t cacheSize, const double w0=static_cast< double >(H5D_CHUNK_CACHE_W0_DEFAULT))
Definition H5PropertyList_misc.hpp:373
size_t getCacheSize() const
Definition H5PropertyList_misc.hpp:382
double getW0() const
Definition H5PropertyList_misc.hpp:386
Definition H5PropertyList.hpp:503
const std::vector< hsize_t > & getDimensions() const noexcept
Definition H5PropertyList_misc.hpp:303
Chunking(const std::vector< hsize_t > &dims)
Definition H5PropertyList_misc.hpp:285
Definition H5PropertyList.hpp:522
Deflate(unsigned level)
Definition H5PropertyList_misc.hpp:319
Set hints as to how many links to expect and their average length.
Definition H5PropertyList.hpp:478
unsigned getEntries() const
The estimated number of links in a group.
Definition H5PropertyList_misc.hpp:273
EstimatedLinkInfo(unsigned entries, unsigned length)
Create a property with the request parameters.
Definition H5PropertyList_misc.hpp:265
unsigned getNameLength() const
The estimated length of the names of links.
Definition H5PropertyList_misc.hpp:277
Configure the version bounds for the file.
Definition H5PropertyList.hpp:342
std::pair< H5F_libver_t, H5F_libver_t > getVersion() const
Definition H5PropertyList_misc.hpp:238
FileVersionBounds(H5F_libver_t low, H5F_libver_t high)
Definition H5PropertyList_misc.hpp:230
Track and index creation order time.
Definition H5PropertyList.hpp:685
LinkCreationOrder(const GroupCreateProps &gcpl)
LinkCreationOrder(unsigned flags)
Create the property.
Definition H5PropertyList.hpp:691
void fromPropertyList(hid_t hid)
Definition H5PropertyList_misc.hpp:476
unsigned getFlags() const
Definition H5PropertyList_misc.hpp:468
Configure MPI access for the file.
Definition H5PropertyList.hpp:232
MPIOFileAccess(MPI_Comm comm, MPI_Info info)
Definition H5PropertyList_misc.hpp:162
The cause for non-collective I/O.
Definition H5PropertyList.hpp:649
uint32_t getGlobalCause() const
The global cause for a non-collective I/O.
Definition H5PropertyList_misc.hpp:451
bool wasCollective() const
Was the datatransfer collective?
Definition H5PropertyList_misc.hpp:443
std::pair< uint32_t, uint32_t > getCause() const
A pair of the local and global cause for non-collective I/O.
Definition H5PropertyList_misc.hpp:455
MpioNoCollectiveCause(const DataTransferProps &dxpl)
Definition H5PropertyList_misc.hpp:439
uint32_t getLocalCause() const
The local cause for a non-collective I/O.
Definition H5PropertyList_misc.hpp:447
Definition H5Object.hpp:54
Base Class for Property lists, providing global default.
Definition H5PropertyList.hpp:122
PropertyListBase() noexcept
Definition H5PropertyList_misc.hpp:58
static const PropertyListBase & Default() noexcept
Definition H5PropertyList.hpp:126
HDF5 property Lists.
Definition H5PropertyList.hpp:160
void _initializeIfNeeded()
Definition H5PropertyList_misc.hpp:63
static PropertyList< T > Empty()
Definition H5PropertyList.hpp:187
static const PropertyList< T > & Default() noexcept
Return the Default property type object.
Definition H5PropertyList.hpp:178
constexpr PropertyType getType() const noexcept
return the type of this PropertyList
Definition H5PropertyList.hpp:164
void add(const P &property)
Definition H5PropertyList_misc.hpp:72
Definition H5PropertyList.hpp:219
void add(const F &funct, const Args &... args)
Definition H5PropertyList_misc.hpp:79
Definition H5PropertyList.hpp:550
Definition H5PropertyList.hpp:534
Szip(unsigned options_mask=H5_SZIP_EC_OPTION_MASK, unsigned pixels_per_block=H5_SZIP_MAX_PIXELS_PER_BLOCK)
Definition H5PropertyList_misc.hpp:330
unsigned getPixelsPerBlock() const
Definition H5PropertyList_misc.hpp:338
unsigned getOptionsMask() const
Definition H5PropertyList_misc.hpp:334
Definition H5PropertyList.hpp:626
bool isCollective() const
Does the property request collective IO?
Definition H5PropertyList_misc.hpp:435
UseCollectiveIO(bool enable=true)
Definition H5PropertyList_misc.hpp:416
PropertyType
Types of property lists.
Definition H5PropertyList.hpp:89
PropertyList< PropertyType::FILE_ACCESS > FileAccessProps
Definition H5PropertyList.hpp:200
HDF5 file property object.
Definition H5_definitions.hpp:22
Definition H5PropertyList.hpp:672
_CreationOrder
Definition H5PropertyList.hpp:673
@ Tracked
Definition H5PropertyList.hpp:674
@ Indexed
Definition H5PropertyList.hpp:675
static void ToException(const std::string &prefix_msg)
Definition H5Exception_misc.hpp:43