From ba2dfe98c9f8e9b67ca0f896344f6be9fefc221a Mon Sep 17 00:00:00 2001 From: Luc Grosheintz Date: Mon, 11 Nov 2024 10:04:43 +0100 Subject: [PATCH 1/2] Update `highfive@3.0.0-beta1`. --- 3rdparty/HighFive | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3rdparty/HighFive b/3rdparty/HighFive index 4a326f35..9cbd8349 160000 --- a/3rdparty/HighFive +++ b/3rdparty/HighFive @@ -1 +1 @@ -Subproject commit 4a326f350d93d5847368105f840a1bd7e4094969 +Subproject commit 9cbd8349b24c6225f001187cd4d2b2c052b8ffe3 From 667d240bebb2af2f358d1a58f7a8e6787cb931fa Mon Sep 17 00:00:00 2001 From: Luc Grosheintz Date: Mon, 11 Nov 2024 10:33:39 +0100 Subject: [PATCH 2/2] Modernize HighFive usage. --- src/readers/morphologyHDF5.cpp | 12 ++---------- src/readers/vasculatureHDF5.cpp | 7 ++----- tests/test_vasculature_morphology.cpp | 4 +--- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/readers/morphologyHDF5.cpp b/src/readers/morphologyHDF5.cpp index fc6a3725..c285a706 100644 --- a/src/readers/morphologyHDF5.cpp +++ b/src/readers/morphologyHDF5.cpp @@ -194,11 +194,7 @@ void MorphologyHDF5::_readPoints(int firstSectionOffset) { "': incorrect number of columns for points"); } - std::vector> hdf5Data(numberPoints); - - if (!hdf5Data.empty()) { - pointsDataSet.read(hdf5Data.front().data()); - } + auto hdf5Data = pointsDataSet.read>>(); const bool hasSoma = firstSectionOffset != 0; const bool hasNeurites = static_cast(firstSectionOffset) < numberPoints; @@ -252,11 +248,7 @@ int MorphologyHDF5::_readSections() { " bad number of dimensions in 'structure' dataspace")); } - std::vector> vec(dims[0]); - if (dims[0] > 0) { - structure.read(vec.front().data()); - } - + auto vec = structure.read>>(); assert(!vec.empty()); bool hasSoma = true; diff --git a/src/readers/vasculatureHDF5.cpp b/src/readers/vasculatureHDF5.cpp index deb6ea34..8b97a74b 100644 --- a/src/readers/vasculatureHDF5.cpp +++ b/src/readers/vasculatureHDF5.cpp @@ -81,9 +81,7 @@ void VasculatureHDF5::_readSections() { auto& sections = _properties.get_mut(); auto selection = _sections->select({0, 0}, {_sectionsDims[0], 1}); - std::vector vec; - vec.resize(_sectionsDims[0]); - selection.read(vec); + auto vec = selection.squeezeMemSpace({1}).read>(); for (auto p : vec) { sections.push_back(p); @@ -94,8 +92,7 @@ void VasculatureHDF5::_readSectionTypes() { auto& types = _properties.get_mut(); auto selection = _sections->select({0, 1}, {_sectionsDims[0], 1}); - types.resize(_sectionsDims[0]); - selection.read(types); + selection.squeezeMemSpace({1}).read(types); for (int type : types) { if (type > SECTION_CUSTOM || type < 0) { const auto err = details::ErrorMessages(_uri); diff --git a/tests/test_vasculature_morphology.cpp b/tests/test_vasculature_morphology.cpp index 3a3ac08a..3b854e1e 100644 --- a/tests/test_vasculature_morphology.cpp +++ b/tests/test_vasculature_morphology.cpp @@ -59,9 +59,7 @@ TEST_CASE("vasculature_section_connectivity", "[vasculature]") { REQUIRE(section_connectivity.size() == n_connections); - std::vector> expected_connectivity(n_connections); - - dset.read(expected_connectivity.front().data()); + auto expected_connectivity = dset.read>>(); REQUIRE(section_connectivity == expected_connectivity); }