16#ifdef H5_HAVE_PARALLEL
106template <
typename T,
typename U>
107T get_plist(
const U& obj, hid_t (*f)(hid_t)) {
108 auto hid = f(obj.getId());
110 HDF5ErrMapper::ToException<PropertyException>(
"Unable to get property list");
130 template <
typename T,
typename U>
131 friend T details::get_plist(
const U&, hid_t (*f)(hid_t));
137template <PropertyType T>
150 template <
typename P>
151 void add(
const P& property);
166 plist._initializeIfNeeded();
193template <PropertyType T>
196 template <
typename F,
typename... Args>
197 void add(
const F& funct,
const Args&... args);
200#ifdef H5_HAVE_PARALLEL
213 void apply(hid_t list)
const;
220#if H5_VERSION_GE(1, 10, 0)
226class MPIOCollectiveMetadata {
228 explicit MPIOCollectiveMetadata(
bool collective =
true);
231 bool isCollectiveRead()
const;
232 bool isCollectiveWrite()
const;
237 void apply(hid_t plist)
const;
239 bool collective_read_;
240 bool collective_write_;
256class MPIOCollectiveMetadataRead {
258 explicit MPIOCollectiveMetadataRead(
bool collective =
true);
259 explicit MPIOCollectiveMetadataRead(
const FileAccessProps& plist);
261 bool isCollective()
const;
264 friend FileAccessProps;
265 friend MPIOCollectiveMetadata;
267 void apply(hid_t plist)
const;
282class MPIOCollectiveMetadataWrite {
284 explicit MPIOCollectiveMetadataWrite(
bool collective =
true);
285 explicit MPIOCollectiveMetadataWrite(
const FileAccessProps& plist);
287 bool isCollective()
const;
291 friend MPIOCollectiveMetadata;
293 void apply(hid_t plist)
const;
322 std::pair<H5F_libver_t, H5F_libver_t>
getVersion()
const;
326 void apply(hid_t list)
const;
346 void apply(hid_t list)
const;
350#if H5_VERSION_GE(1, 10, 1)
357class FileSpaceStrategy {
365 FileSpaceStrategy(H5F_fspace_strategy_t strategy, hbool_t persist, hsize_t threshold);
368 H5F_fspace_strategy_t getStrategy()
const;
369 hbool_t getPersist()
const;
370 hsize_t getThreshold()
const;
375 void apply(hid_t list)
const;
377 H5F_fspace_strategy_t _strategy;
391class FileSpacePageSize {
397 explicit FileSpacePageSize(hsize_t page_size);
398 explicit FileSpacePageSize(
const FileCreateProps& fcpl);
400 hsize_t getPageSize()
const;
403 friend FileCreateProps;
404 void apply(hid_t list)
const;
409#ifndef H5_HAVE_PARALLEL
421class PageBufferSize {
428 explicit PageBufferSize(
size_t page_buffer_size,
429 unsigned min_meta_percent = 0,
430 unsigned min_raw_percent = 0);
432 explicit PageBufferSize(
const FileAccessProps& fapl);
434 size_t getPageBufferSize()
const;
435 unsigned getMinMetaPercent()
const;
436 unsigned getMinRawPercent()
const;
441 void apply(hid_t list)
const;
443 size_t _page_buffer_size;
470 void apply(hid_t hid)
const;
478 explicit Chunking(
const std::vector<hsize_t>& dims);
479 Chunking(
const std::initializer_list<hsize_t>& items);
481 template <
typename... Args>
482 explicit Chunking(hsize_t item, Args... args);
490 void apply(hid_t hid)
const;
491 std::vector<hsize_t> _dims;
496 explicit Deflate(
unsigned level);
501 void apply(hid_t hid)
const;
502 const unsigned _level;
507 explicit Szip(
unsigned options_mask = H5_SZIP_EC_OPTION_MASK,
508 unsigned pixels_per_block = H5_SZIP_MAX_PIXELS_PER_BLOCK);
515 void apply(hid_t hid)
const;
516 const unsigned _options_mask;
517 const unsigned _pixels_per_block;
526 void apply(hid_t hid)
const;
543 void apply(hid_t dcpl)
const;
545 H5D_alloc_time_t _alloc_time;
556 double w0 =
static_cast<double>(H5D_CHUNK_CACHE_W0_DEFAULT));
562 double getW0()
const;
566 void apply(hid_t hid)
const;
585 void apply(hid_t hid)
const;
589#ifdef H5_HAVE_PARALLEL
601 void apply(hid_t hid)
const;
626 std::pair<uint32_t, uint32_t>
getCause()
const;
630 uint32_t _local_cause;
631 uint32_t _global_cause;
667 void apply(hid_t hid)
const;
700 void apply(hid_t hid)
const;
702 unsigned _max_compact;
When are datasets allocated?
Definition H5PropertyList.hpp:534
H5D_alloc_time_t getAllocationTime()
Definition H5PropertyList_misc.hpp:357
Set threshold for attribute storage.
Definition H5PropertyList.hpp:682
unsigned max_compact() const
Definition H5PropertyList_misc.hpp:479
unsigned min_dense() const
Definition H5PropertyList_misc.hpp:483
Definition H5PropertyList.hpp:550
size_t getNumSlots() const
Definition H5PropertyList_misc.hpp:374
size_t getCacheSize() const
Definition H5PropertyList_misc.hpp:378
double getW0() const
Definition H5PropertyList_misc.hpp:382
Definition H5PropertyList.hpp:476
const std::vector< hsize_t > & getDimensions() const
Definition H5PropertyList_misc.hpp:299
Definition H5PropertyList.hpp:494
Set hints as to how many links to expect and their average length.
Definition H5PropertyList.hpp:452
unsigned getEntries() const
The estimated number of links in a group.
Definition H5PropertyList_misc.hpp:269
unsigned getNameLength() const
The estimated length of the names of links.
Definition H5PropertyList_misc.hpp:273
Configure the version bounds for the file.
Definition H5PropertyList.hpp:317
std::pair< H5F_libver_t, H5F_libver_t > getVersion() const
Definition H5PropertyList_misc.hpp:234
Track and index creation order time.
Definition H5PropertyList.hpp:647
LinkCreationOrder(const GroupCreateProps &gcpl)
LinkCreationOrder(unsigned flags)
Create the property.
Definition H5PropertyList.hpp:653
void fromPropertyList(hid_t hid)
Definition H5PropertyList_misc.hpp:467
unsigned getFlags() const
Definition H5PropertyList_misc.hpp:459
Configure MPI access for the file.
Definition H5PropertyList.hpp:207
The cause for non-collective I/O.
Definition H5PropertyList.hpp:612
uint32_t getGlobalCause() const
The global cause for a non-collective I/O.
Definition H5PropertyList_misc.hpp:442
bool wasCollective() const
Was the datatransfer collective?
Definition H5PropertyList_misc.hpp:434
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:446
uint32_t getLocalCause() const
The local cause for a non-collective I/O.
Definition H5PropertyList_misc.hpp:438
Definition H5Object.hpp:36
Base Class for Property lists, providing global default.
Definition H5PropertyList.hpp:120
PropertyListBase() noexcept
Definition H5PropertyList_misc.hpp:54
static const PropertyListBase & Default() noexcept
Definition H5PropertyList.hpp:124
HDF5 property Lists.
Definition H5PropertyList.hpp:138
void _initializeIfNeeded()
Definition H5PropertyList_misc.hpp:59
static PropertyList< T > Empty()
Definition H5PropertyList.hpp:164
static const PropertyList< T > & Default() noexcept
Return the Default property type object.
Definition H5PropertyList.hpp:155
constexpr PropertyType getType() const noexcept
return the type of this PropertyList
Definition H5PropertyList.hpp:142
void add(const P &property)
Definition H5PropertyList_misc.hpp:68
Definition H5PropertyList.hpp:194
void add(const F &funct, const Args &... args)
Definition H5PropertyList_misc.hpp:75
Definition H5PropertyList.hpp:520
Definition H5PropertyList.hpp:505
unsigned getPixelsPerBlock() const
Definition H5PropertyList_misc.hpp:334
unsigned getOptionsMask() const
Definition H5PropertyList_misc.hpp:330
Definition H5PropertyList.hpp:590
bool isCollective() const
Does the property request collective IO?
Definition H5PropertyList_misc.hpp:426
PropertyType
Types of property lists.
Definition H5PropertyList.hpp:89
PropertyList< PropertyType::FILE_ACCESS > FileAccessProps
Definition H5PropertyList.hpp:176
Definition assert_compatible_spaces.hpp:15
Definition H5PropertyList.hpp:635
_creation_order
Definition H5PropertyList.hpp:636
@ Tracked
Definition H5PropertyList.hpp:637
@ Indexed
Definition H5PropertyList.hpp:638