File indexing completed on 2025-04-19 08:55:36
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include "H5DataSet.hpp"
0012 #include "H5DataSpace.hpp"
0013 #include "bits/H5Slice_traits.hpp"
0014 #include "bits/H5Friends.hpp"
0015
0016 namespace HighFive {
0017
0018 namespace detail {
0019 Selection make_selection(const DataSpace&, const DataSpace&, const DataSet&);
0020 }
0021
0022
0023
0024
0025
0026
0027 class Selection: public SliceTraits<Selection> {
0028 public:
0029
0030
0031
0032
0033 DataSpace getSpace() const noexcept;
0034
0035
0036
0037
0038
0039
0040 DataSpace getMemSpace() const noexcept;
0041
0042
0043
0044
0045
0046 DataSet& getDataset() noexcept;
0047 const DataSet& getDataset() const noexcept;
0048
0049
0050
0051
0052 const DataType getDataType() const;
0053
0054 protected:
0055 Selection(const DataSpace& memspace, const DataSpace& file_space, const DataSet& set);
0056
0057 private:
0058 DataSpace _mem_space, _file_space;
0059 DataSet _set;
0060
0061 #if HIGHFIVE_HAS_FRIEND_DECLARATIONS
0062 template <typename Derivate>
0063 friend class ::HighFive::SliceTraits;
0064 #endif
0065 friend Selection detail::make_selection(const DataSpace&, const DataSpace&, const DataSet&);
0066 };
0067
0068 }