chihaya
Validating delayed array operations in HDF5
Loading...
Searching...
No Matches
subset.hpp
Go to the documentation of this file.
1#ifndef CHIHAYA_SUBSET_HPP
2#define CHIHAYA_SUBSET_HPP
3
4#include "H5Cpp.h"
5#include "ritsuko/ritsuko.hpp"
6
7#include <exception>
8#include <vector>
9#include <stdexcept>
10
11#include "utils_public.hpp"
12#include "utils_misc.hpp"
13#include "utils_subset.hpp"
14
20namespace chihaya {
21
34inline ArrayDetails validate_subset(const H5::Group& group, const ritsuko::Version& version, const Options& options) {
35 ArrayDetails seed_details;
36 try {
37 auto shandle = group.openGroup("seed");
38 seed_details = validate(shandle, version, options);
39 } catch (...) {
40 std::throw_with_nested(std::runtime_error("failed to validate 'seed'"));
41 }
42
43 auto& seed_dims = seed_details.dimensions;
44 std::vector<std::pair<std::size_t, std::size_t> > collected;
45 try {
46 auto ihandle = group.openGroup("index");
47 collected = validate_subset_index_list(ihandle, seed_dims, version, options.contiguous_chunk_size);
48 } catch (...) {
49 std::throw_with_nested(std::runtime_error("failed to validate 'index'"));
50 }
51
52 for (auto p : collected) {
53 seed_dims[p.first] = p.second;
54 }
55 return seed_details;
56}
57
58}
59
60#endif
Namespace for all chihaya functions.
Definition binary_arithmetic.hpp:21
ArrayDetails validate_subset(const H5::Group &group, const ritsuko::Version &version, const Options &options)
Definition subset.hpp:34
ArrayDetails validate(const H5::Group &group, const ritsuko::Version &version, const Options &options)
Definition validate.hpp:96
Details about an array.
Definition utils_public.hpp:38
std::vector< std::size_t > dimensions
Definition utils_public.hpp:58
Options for validate().
Definition utils_public.hpp:79
hsize_t contiguous_chunk_size
Definition utils_public.hpp:90
Various public utilities.