16#ifdef H5_HAVE_PARALLEL
47template <
typename T,
typename U>
48T get_plist(
const U& obj, hid_t (*f)(hid_t)) {
49 auto hid = f(obj.getId());
71 template <
typename T,
typename U>
72 friend T details::get_plist(
const U&, hid_t (*f)(hid_t));
78template <PropertyType T>
93 void add(
const P& property);
125template <PropertyType T>
128 template <
typename F,
typename... Args>
129 void add(
const F& funct,
const Args&... args);
132#ifdef H5_HAVE_PARALLEL
145 void apply(
const hid_t list)
const;
167 void apply(hid_t plist)
const;
169 bool collective_read_;
170 bool collective_write_;
197 void apply(hid_t plist)
const;
223 void apply(hid_t plist)
const;
251 std::pair<H5F_libver_t, H5F_libver_t>
getVersion()
const;
255 void apply(
const hid_t list)
const;
275 void apply(
const hid_t list)
const;
279#if H5_VERSION_GE(1, 10, 1)
286class FileSpaceStrategy {
294 FileSpaceStrategy(H5F_fspace_strategy_t strategy, hbool_t persist, hsize_t threshold);
297 H5F_fspace_strategy_t getStrategy()
const;
298 hbool_t getPersist()
const;
299 hsize_t getThreshold()
const;
304 void apply(
const hid_t list)
const;
306 H5F_fspace_strategy_t _strategy;
320class FileSpacePageSize {
326 explicit FileSpacePageSize(hsize_t page_size);
327 explicit FileSpacePageSize(
const FileCreateProps& fcpl);
329 hsize_t getPageSize()
const;
332 friend FileCreateProps;
333 void apply(
const hid_t list)
const;
338#ifndef H5_HAVE_PARALLEL
350class PageBufferSize {
357 explicit PageBufferSize(
size_t page_buffer_size,
358 unsigned min_meta_percent = 0,
359 unsigned min_raw_percent = 0);
361 explicit PageBufferSize(
const FileAccessProps& fapl);
363 size_t getPageBufferSize()
const;
364 unsigned getMinMetaPercent()
const;
365 unsigned getMinRawPercent()
const;
370 void apply(hid_t list)
const;
372 size_t _page_buffer_size;
399 void apply(hid_t hid)
const;
407 explicit Chunking(
const std::vector<hsize_t>& dims);
408 Chunking(
const std::initializer_list<hsize_t>& items);
410 template <
typename... Args>
411 explicit Chunking(hsize_t item, Args... args);
419 void apply(hid_t hid)
const;
420 std::vector<hsize_t> _dims;
425 explicit Deflate(
unsigned level);
430 void apply(hid_t hid)
const;
431 const unsigned _level;
436 explicit Szip(
unsigned options_mask = H5_SZIP_EC_OPTION_MASK,
437 unsigned pixels_per_block = H5_SZIP_MAX_PIXELS_PER_BLOCK);
444 void apply(hid_t hid)
const;
445 const unsigned _options_mask;
446 const unsigned _pixels_per_block;
455 void apply(hid_t hid)
const;
472 void apply(hid_t dcpl)
const;
474 H5D_alloc_time_t _alloc_time;
484 const size_t cacheSize,
485 const double w0 =
static_cast<double>(H5D_CHUNK_CACHE_W0_DEFAULT));
491 double getW0()
const;
495 void apply(hid_t hid)
const;
516 void apply(hid_t hid)
const;
520#ifdef H5_HAVE_PARALLEL
532 void apply(hid_t hid)
const;
557 std::pair<uint32_t, uint32_t>
getCause()
const;
561 uint32_t _local_cause;
562 uint32_t _global_cause;
598 void apply(hid_t hid)
const;
When are datasets allocated?
Definition H5PropertyList.hpp:463
H5D_alloc_time_t getAllocationTime()
Definition H5PropertyList_misc.hpp:405
Definition H5PropertyList.hpp:479
size_t getNumSlots() const
Definition H5PropertyList_misc.hpp:426
size_t getCacheSize() const
Definition H5PropertyList_misc.hpp:430
double getW0() const
Definition H5PropertyList_misc.hpp:434
Definition H5PropertyList.hpp:405
const std::vector< hsize_t > & getDimensions() const noexcept
Definition H5PropertyList_misc.hpp:341
Definition H5PropertyList.hpp:423
Set hints as to how many links to expect and their average length.
Definition H5PropertyList.hpp:381
unsigned getEntries() const
The estimated number of links in a group.
Definition H5PropertyList_misc.hpp:307
unsigned getNameLength() const
The estimated length of the names of links.
Definition H5PropertyList_misc.hpp:311
Configure the version bounds for the file.
Definition H5PropertyList.hpp:246
std::pair< H5F_libver_t, H5F_libver_t > getVersion() const
Definition H5PropertyList_misc.hpp:262
Track and index creation order time.
Definition H5PropertyList.hpp:578
LinkCreationOrder(const GroupCreateProps &gcpl)
LinkCreationOrder(unsigned flags)
Create the property.
Definition H5PropertyList.hpp:584
void fromPropertyList(hid_t hid)
Definition H5PropertyList_misc.hpp:540
unsigned getFlags() const
Definition H5PropertyList_misc.hpp:530
Configure MPI access for the file.
Definition H5PropertyList.hpp:139
The cause for non-collective I/O.
Definition H5PropertyList.hpp:543
uint32_t getGlobalCause() const
The global cause for a non-collective I/O.
Definition H5PropertyList_misc.hpp:513
bool wasCollective() const
Was the datatransfer collective?
Definition H5PropertyList_misc.hpp:505
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:517
uint32_t getLocalCause() const
The local cause for a non-collective I/O.
Definition H5PropertyList_misc.hpp:509
Definition H5Object.hpp:54
Base Class for Property lists, providing global default.
Definition H5PropertyList.hpp:61
PropertyListBase() noexcept
Definition H5PropertyList_misc.hpp:58
static const PropertyListBase & Default() noexcept
Definition H5PropertyList.hpp:65
HDF5 property Lists.
Definition H5PropertyList.hpp:79
void _initializeIfNeeded()
Definition H5PropertyList_misc.hpp:63
static const PropertyList< T > & Default() noexcept
Return the Default property type object.
Definition H5PropertyList.hpp:97
constexpr PropertyType getType() const noexcept
return the type of this PropertyList
Definition H5PropertyList.hpp:83
void add(const P &property)
Definition H5PropertyList_misc.hpp:74
Definition H5PropertyList.hpp:126
void add(const F &funct, const Args &... args)
Definition H5PropertyList_misc.hpp:81
Definition H5PropertyList.hpp:449
Definition H5PropertyList.hpp:434
unsigned getPixelsPerBlock() const
Definition H5PropertyList_misc.hpp:376
unsigned getOptionsMask() const
Definition H5PropertyList_misc.hpp:372
Definition H5PropertyList.hpp:521
bool isCollective() const
Does the property request collective IO?
Definition H5PropertyList_misc.hpp:495
Definition H5_definitions.hpp:15
PropertyType
Types of property lists.
Definition H5PropertyList.hpp:28
PropertyList< PropertyType::FILE_ACCESS > FileAccessProps
Definition H5PropertyList.hpp:107
Definition H5PropertyList.hpp:566
_CreationOrder
Definition H5PropertyList.hpp:567
@ Tracked
Definition H5PropertyList.hpp:568
@ Indexed
Definition H5PropertyList.hpp:569
static void ToException(const std::string &prefix_msg)
Definition H5Exception_misc.hpp:42