160 #pragma clang diagnostic push
161 #pragma clang diagnostic ignored "-Wdocumentation-deprecated-sync"
165 #pragma clang diagnostic pop
170 void extent(
size_t dim,ssize_t delta_elements)
const;
190#if (defined(_DOXYGEN_) || H5_VERSION_GE(1,10,0))
223 property::DatasetTransferList::get())
const;
235 property::DatasetTransferList::get())
const;
259 property::DatasetTransferList::get())
const;
266 property::DatasetTransferList::get())
const;
269 void read_reshape(T &data,
273 property::DatasetTransferList::get())
const;
288 property::DatasetTransferList::get());
291 property::DatasetTransferList::get())
const;
307 void write_reshape(
const T &data,
311 property::DatasetTransferList::get())
const;
323 property::DatasetTransferList::get());
325 property::DatasetTransferList::get())
const;
340 void write_chunk(
const T &data,
341 std::vector<hsize_t> offset,
342 std::uint32_t filter_mask = 0,
344 property::DatasetTransferList::get());
347 void write_chunk(
const T &data,
348 std::vector<hsize_t> offset,
349 std::uint32_t filter_mask = 0,
351 property::DatasetTransferList::get())
const;
368 void write_chunk(
const T &data,
371 std::vector<hsize_t> & offset,
372 std::uint32_t filter_mask = 0,
374 property::DatasetTransferList::get())
const;
376#if (defined(_DOXYGEN_) || H5_VERSION_GE(1,10,2))
392 std::vector<hsize_t> offset,
394 property::DatasetTransferList::get())
const;
413 std::vector<hsize_t> & offset,
415 property::DatasetTransferList::get())
const;
443 property::DatasetTransferList::get());
446 property::DatasetTransferList::get())
const;
462 property::DatasetTransferList::get());
466 property::DatasetTransferList::get())
const;
483 void write_reshape(
const T &data,
488 property::DatasetTransferList::get())
const;
505 property::DatasetTransferList::get());
509 property::DatasetTransferList::get())
const;
528 void read_reshape(T &data,
533 property::DatasetTransferList::get())
const;
573 static Node create_dataset(
const Group &base,
585 void write_variable_length_data(
const T &data,
594 if(H5Dwrite(
static_cast<hid_t
>(*
this),
595 static_cast<hid_t
>(mem_type),
596 static_cast<hid_t
>(mem_space),
597 static_cast<hid_t
>(file_space),
598 static_cast<hid_t
>(dtpl),
601 std::stringstream ss;
602 ss<<
"Failure to write variable length data to dataset ["<<
link().path()<<
"]!";
603 error::Singleton::instance().throw_with_stack(ss.str());
608 void write_contiguous_data(
const T &data,
615 if(H5Dwrite(
static_cast<hid_t
>(*
this),
616 static_cast<hid_t
>(mem_type),
617 static_cast<hid_t
>(mem_space),
618 static_cast<hid_t
>(file_space),
619 static_cast<hid_t
>(dtpl),
620 dataspace::cptr(data))<0)
622 std::stringstream ss;
623 ss<<
"Failure to write contiguous data to dataset ["<<link().path()<<
"]!";
624 error::Singleton::instance().throw_with_stack(ss.str());
629 void write_variable_length_string_data(
const T &data,
630 const datatype::Datatype &mem_type,
631 const dataspace::Dataspace &mem_space,
632 const datatype::Datatype &,
633 const dataspace::Dataspace &file_space,
634 const property::DatasetTransferList &dtpl)
const
636 using Trait = VarLengthStringTrait<T>;
637 auto buffer = Trait::to_buffer(data);
639 if(H5Dwrite(
static_cast<hid_t
>(*
this),
640 static_cast<hid_t
>(mem_type),
641 static_cast<hid_t
>(mem_space),
642 static_cast<hid_t
>(file_space),
643 static_cast<hid_t
>(dtpl),
644 reinterpret_cast<void*
>(buffer.data()))<0)
646 std::stringstream ss;
647 ss<<
"Failure to write variable length string data to dataset ["<<
link().path()<<
"]!";
648 error::Singleton::instance().throw_with_stack(ss.str());
653 void write_fixed_length_string_data(
const T &data,
654 const datatype::Datatype &mem_type,
655 const dataspace::Dataspace &mem_space,
656 const datatype::Datatype &,
657 const dataspace::Dataspace &file_space,
658 const property::DatasetTransferList &dtpl)
const
660 using Trait = FixedLengthStringTrait<T>;
661 auto buffer = Trait::to_buffer(data,mem_type,mem_space);
663 if(H5Dwrite(
static_cast<hid_t
>(*
this),
664 static_cast<hid_t
>(mem_type),
665 static_cast<hid_t
>(mem_space),
666 static_cast<hid_t
>(file_space),
667 static_cast<hid_t
>(dtpl),
668 reinterpret_cast<void*
>(buffer.data()))<0)
670 std::stringstream ss;
671 ss<<
"Failure to write fixed length string data to dataset ["<<
link().path()<<
"]!";
672 error::Singleton::instance().throw_with_stack(ss.str());
682 void read_variable_length_data(T &data,
683 const datatype::Datatype &mem_type,
684 const dataspace::Dataspace &mem_space,
685 const datatype::Datatype &file_type,
686 const dataspace::Dataspace &file_space,
687 const property::DatasetTransferList &dtpl)
const
690 if(file_space.selection.type() != dataspace::SelectionType::All)
692 buffer.resize(file_space.selection.size());
696 buffer.resize(signed2unsigned<size_t>(file_space.size()));
699 if(H5Dread(
static_cast<hid_t
>(*
this),
700 static_cast<hid_t
>(mem_type),
701 static_cast<hid_t
>(mem_space),
702 static_cast<hid_t
>(file_space),
703 static_cast<hid_t
>(dtpl),
706 std::stringstream ss;
707 ss<<
"Failure to read variable length data from dataset ["<<
link().path()<<
"]!";
708 error::Singleton::instance().throw_with_stack(ss.str());
711 VarLengthBufferTrait<T>::from_buffer(buffer,data);
713 if(H5Dvlen_reclaim(
static_cast<hid_t
>(file_type),
714 static_cast<hid_t
>(file_space),
715 static_cast<hid_t
>(dtpl),
718 error::Singleton::instance().throw_with_stack(
"Error reclaiming variable length memory!");
723 void read_contiguous_data(T &data,
724 const datatype::Datatype &mem_type,
725 const dataspace::Dataspace &mem_space,
726 const datatype::Datatype &,
727 const dataspace::Dataspace &file_space,
728 const property::DatasetTransferList &dtpl)
const
730 if(H5Dread(
static_cast<hid_t
>(*
this),
731 static_cast<hid_t
>(mem_type),
732 static_cast<hid_t
>(mem_space),
733 static_cast<hid_t
>(file_space),
734 static_cast<hid_t
>(dtpl),
735 dataspace::ptr(data))<0)
737 std::stringstream ss;
738 ss<<
"Failure to read contiguous data from dataset ["<<
link().path()<<
"]!";
739 error::Singleton::instance().throw_with_stack(ss.str());
744 void read_variable_length_string_data(T &data,
745 const datatype::Datatype &mem_type,
746 const dataspace::Dataspace &mem_space,
747 const datatype::Datatype &,
748 const dataspace::Dataspace &file_space,
749 const property::DatasetTransferList &dtpl)
const
751 using Trait = VarLengthStringTrait<T>;
752 using size_type =
typename std::vector<T>::size_type;
754 typename Trait::BufferType buffer(
static_cast<size_type
>(mem_space.size()));
757 if(H5Dread(
static_cast<hid_t
>(*
this),
758 static_cast<hid_t
>(mem_type),
759 static_cast<hid_t
>(mem_space),
760 static_cast<hid_t
>(file_space),
761 static_cast<hid_t
>(dtpl),
764 std::stringstream ss;
765 ss<<
"Failure to read variable length string data from dataset ["
766 <<
link().path()<<
"]!";
767 error::Singleton::instance().throw_with_stack(ss.str());
770 Trait::from_buffer(buffer,data);
772 if(buffer.size() > 0)
774 if(H5Dvlen_reclaim(
static_cast<hid_t
>(mem_type),
775 static_cast<hid_t
>(mem_space),
776 static_cast<hid_t
>(dtpl),
779 std::stringstream ss;
780 ss<<
"Error reclaiming memory from variable length string data in "
781 <<
"dataset ["<<
link().path()<<
"]!";
782 error::Singleton::instance().throw_with_stack(ss.str());
788 void read_fixed_length_string_data(T &data,
789 const datatype::Datatype &mem_type,
790 const dataspace::Dataspace &mem_space,
791 const datatype::Datatype &,
792 const dataspace::Dataspace &file_space,
793 const property::DatasetTransferList &dtpl)
const
795 using Trait = FixedLengthStringTrait<T>;
797 auto buffer = Trait::BufferType::create(mem_type,mem_space);
799 if(file_space.size() > 0)
801 if(H5Dread(
static_cast<hid_t
>(*
this),
802 static_cast<hid_t
>(mem_type),
803 static_cast<hid_t
>(mem_space),
804 static_cast<hid_t
>(file_space),
805 static_cast<hid_t
>(dtpl),
808 std::stringstream ss;
809 ss<<
"Failure to read fixed length string data to dataset ["<<
link().path()<<
"]!";
810 error::Singleton::instance().throw_with_stack(ss.str());
814 data = Trait::from_buffer(buffer,mem_type,mem_space);