From b0715e14aff89c69d1fe6af937cd2b2987310ce8 Mon Sep 17 00:00:00 2001 From: Sujin Philip Date: Wed, 12 Apr 2023 10:18:04 -0400 Subject: [PATCH] ArrayHandle::StorageType should be public MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit StorageType is public in vtkm::cont::ArrayHandle, but some subclasses   re-declare it as private. Having it public provides a convenient way to   get the storage type of an ArrayHandle, otherwise it is quite verbose. Addresses: #314 --- vtkm/cont/ArrayHandle.h | 5 ++++- vtkm/cont/ArrayHandleCartesianProduct.h | 4 ---- vtkm/cont/ArrayHandleCompositeVector.h | 7 +------ vtkm/cont/ArrayHandleConcatenate.h | 4 ---- vtkm/cont/ArrayHandleDecorator.h | 2 -- vtkm/cont/ArrayHandleExtractComponent.h | 7 +------ vtkm/cont/ArrayHandleGroupVecVariable.h | 4 ---- vtkm/cont/ArrayHandleImplicit.h | 1 - vtkm/cont/ArrayHandleMultiplexer.h | 4 ---- vtkm/cont/ArrayHandlePermutation.h | 4 ---- vtkm/cont/ArrayHandleRecombineVec.h | 4 ---- vtkm/cont/ArrayHandleReverse.h | 1 - vtkm/cont/ArrayHandleRuntimeVec.h | 1 - vtkm/cont/ArrayHandleSOA.h | 2 -- vtkm/cont/ArrayHandleStride.h | 4 ---- vtkm/cont/ArrayHandleTransform.h | 14 ++------------ vtkm/cont/ArrayHandleUniformPointCoordinates.h | 4 ---- vtkm/cont/ArrayHandleView.h | 4 ---- vtkm/cont/ArrayHandleXGCCoordinates.h | 4 ---- vtkm/cont/ArrayHandleZip.h | 7 ------- vtkm/cont/testing/UnitTestArrayHandleCounting.cxx | 10 +++------- 21 files changed, 11 insertions(+), 86 deletions(-) diff --git a/vtkm/cont/ArrayHandle.h b/vtkm/cont/ArrayHandle.h index 6a4467b15..8c149a440 100644 --- a/vtkm/cont/ArrayHandle.h +++ b/vtkm/cont/ArrayHandle.h @@ -200,7 +200,10 @@ struct GetTypeInParentheses } \ \ using ValueType = typename__ Superclass::ValueType; \ - using StorageTag = typename__ Superclass::StorageTag + using StorageTag = typename__ Superclass::StorageTag; \ + using StorageType = typename__ Superclass::StorageType; \ + using ReadPortalType = typename__ Superclass::ReadPortalType; \ + using WritePortalType = typename__ Superclass::WritePortalType /// \brief Macro to make default methods in ArrayHandle subclasses. /// diff --git a/vtkm/cont/ArrayHandleCartesianProduct.h b/vtkm/cont/ArrayHandleCartesianProduct.h index 037f9ee03..d9fb12c1c 100644 --- a/vtkm/cont/ArrayHandleCartesianProduct.h +++ b/vtkm/cont/ArrayHandleCartesianProduct.h @@ -344,10 +344,6 @@ public: SecondHandleType, ThirdHandleType>::Superclass)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleCartesianProduct(const FirstHandleType& firstArray, const SecondHandleType& secondArray, diff --git a/vtkm/cont/ArrayHandleCompositeVector.h b/vtkm/cont/ArrayHandleCompositeVector.h index 02bbf59e7..53cce488c 100644 --- a/vtkm/cont/ArrayHandleCompositeVector.h +++ b/vtkm/cont/ArrayHandleCompositeVector.h @@ -188,7 +188,6 @@ struct CompositeVectorTraits using ValueType = typename vtkm::internal::compvec::GetValueType::ValueType; using StorageTag = vtkm::cont::StorageTagCompositeVec; - using StorageType = Storage; using Superclass = ArrayHandle; }; @@ -400,14 +399,10 @@ class ArrayHandleCompositeVector : public ArrayHandle::ValueType, typename internal::CompositeVectorTraits::StorageTag> { -private: - using Traits = internal::CompositeVectorTraits; - using StorageType = typename Traits::StorageType; - public: VTKM_ARRAY_HANDLE_SUBCLASS(ArrayHandleCompositeVector, (ArrayHandleCompositeVector), - (typename Traits::Superclass)); + (typename internal::CompositeVectorTraits::Superclass)); VTKM_CONT ArrayHandleCompositeVector(const ArrayTs&... arrays) diff --git a/vtkm/cont/ArrayHandleConcatenate.h b/vtkm/cont/ArrayHandleConcatenate.h index a8a1cdc2f..d976f1254 100644 --- a/vtkm/cont/ArrayHandleConcatenate.h +++ b/vtkm/cont/ArrayHandleConcatenate.h @@ -251,10 +251,6 @@ public: StorageTagConcatenate>)); -protected: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleConcatenate(const ArrayHandleType1& array1, const ArrayHandleType2& array2) : Superclass(StorageType::CreateBuffers(array1, array2)) diff --git a/vtkm/cont/ArrayHandleDecorator.h b/vtkm/cont/ArrayHandleDecorator.h index dc71d3d62..ffd85d0de 100644 --- a/vtkm/cont/ArrayHandleDecorator.h +++ b/vtkm/cont/ArrayHandleDecorator.h @@ -565,7 +565,6 @@ struct DecoratorHandleTraits using StorageTraits = decor::DecoratorStorageTraits; using ValueType = typename StorageTraits::ValueType; using StorageTag = StorageTagDecorator; - using StorageType = vtkm::cont::internal::Storage; using Superclass = vtkm::cont::ArrayHandle; }; @@ -651,7 +650,6 @@ class ArrayHandleDecorator private: using Traits = internal::DecoratorHandleTraits::type, typename std::decay::type...>; - using StorageType = typename Traits::StorageType; public: VTKM_ARRAY_HANDLE_SUBCLASS(ArrayHandleDecorator, diff --git a/vtkm/cont/ArrayHandleExtractComponent.h b/vtkm/cont/ArrayHandleExtractComponent.h index 66f3c7137..8e243c3b1 100644 --- a/vtkm/cont/ArrayHandleExtractComponent.h +++ b/vtkm/cont/ArrayHandleExtractComponent.h @@ -94,8 +94,7 @@ class Storage::Com { using SourceValueType = typename ArrayHandleType::ValueType; using ValueType = typename vtkm::VecTraits::ComponentType; - using SourceStorageTag = typename ArrayHandleType::StorageTag; - using SourceStorage = vtkm::cont::internal::Storage; + using SourceStorage = typename ArrayHandleType::StorageType; public: VTKM_CONT static vtkm::IdComponent ComponentIndex( @@ -198,10 +197,6 @@ public: typename vtkm::VecTraits::ComponentType, StorageTagExtractComponent>)); -protected: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleExtractComponent(const ArrayHandleType& array, vtkm::IdComponent component) : Superclass(StorageType::CreateBuffers(component, array)) diff --git a/vtkm/cont/ArrayHandleGroupVecVariable.h b/vtkm/cont/ArrayHandleGroupVecVariable.h index d7d512b09..ffc0949a0 100644 --- a/vtkm/cont/ArrayHandleGroupVecVariable.h +++ b/vtkm/cont/ArrayHandleGroupVecVariable.h @@ -285,10 +285,6 @@ public: using ComponentType = typename ComponentsArrayHandleType::ValueType; -private: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleGroupVecVariable(const ComponentsArrayHandleType& componentsArray, const OffsetsArrayHandleType& offsetsArray) diff --git a/vtkm/cont/ArrayHandleImplicit.h b/vtkm/cont/ArrayHandleImplicit.h index ceb3b42a9..e21ab2588 100644 --- a/vtkm/cont/ArrayHandleImplicit.h +++ b/vtkm/cont/ArrayHandleImplicit.h @@ -158,7 +158,6 @@ struct ArrayHandleImplicitTraits using PortalType = vtkm::internal::ArrayPortalImplicit; using StorageTag = vtkm::cont::StorageTagImplicit; using Superclass = vtkm::cont::ArrayHandle; - using StorageType = vtkm::cont::internal::Storage; }; } // namespace detail diff --git a/vtkm/cont/ArrayHandleMultiplexer.h b/vtkm/cont/ArrayHandleMultiplexer.h index d05ab60c3..3337d9c3e 100644 --- a/vtkm/cont/ArrayHandleMultiplexer.h +++ b/vtkm/cont/ArrayHandleMultiplexer.h @@ -408,10 +408,6 @@ public: (ArrayHandleMultiplexer), (vtkm::cont::ArrayHandle)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: template VTKM_CONT ArrayHandleMultiplexer(const vtkm::cont::ArrayHandle& src) : Superclass(StorageType::CreateBuffers(src)) diff --git a/vtkm/cont/ArrayHandlePermutation.h b/vtkm/cont/ArrayHandlePermutation.h index bcd826801..920c317d5 100644 --- a/vtkm/cont/ArrayHandlePermutation.h +++ b/vtkm/cont/ArrayHandlePermutation.h @@ -248,10 +248,6 @@ public: vtkm::cont::StorageTagPermutation>)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandlePermutation(const IndexArrayHandleType& indexArray, const ValueArrayHandleType& valueArray) diff --git a/vtkm/cont/ArrayHandleRecombineVec.h b/vtkm/cont/ArrayHandleRecombineVec.h index 1a817e296..121d3fa4a 100644 --- a/vtkm/cont/ArrayHandleRecombineVec.h +++ b/vtkm/cont/ArrayHandleRecombineVec.h @@ -604,10 +604,6 @@ public: (vtkm::cont::ArrayHandle, vtkm::cont::internal::StorageTagRecombineVec>)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: vtkm::IdComponent GetNumberOfComponents() const { return StorageType::GetNumberOfComponents(this->GetBuffers()); diff --git a/vtkm/cont/ArrayHandleReverse.h b/vtkm/cont/ArrayHandleReverse.h index 4a41d2905..77cbeb2d2 100644 --- a/vtkm/cont/ArrayHandleReverse.h +++ b/vtkm/cont/ArrayHandleReverse.h @@ -156,7 +156,6 @@ public: (vtkm::cont::ArrayHandle>)); -public: ArrayHandleReverse(const ArrayHandleType& handle) : Superclass(handle.GetBuffers()) { diff --git a/vtkm/cont/ArrayHandleRuntimeVec.h b/vtkm/cont/ArrayHandleRuntimeVec.h index 4143c8bd4..8b6575796 100644 --- a/vtkm/cont/ArrayHandleRuntimeVec.h +++ b/vtkm/cont/ArrayHandleRuntimeVec.h @@ -327,7 +327,6 @@ public: vtkm::cont::StorageTagRuntimeVec>)); private: - using StorageType = vtkm::cont::internal::Storage; using ComponentsArrayType = vtkm::cont::ArrayHandle; public: diff --git a/vtkm/cont/ArrayHandleSOA.h b/vtkm/cont/ArrayHandleSOA.h index d50d64470..08e522977 100644 --- a/vtkm/cont/ArrayHandleSOA.h +++ b/vtkm/cont/ArrayHandleSOA.h @@ -246,8 +246,6 @@ class ArrayHandleSOA : public ArrayHandle using ComponentType = typename vtkm::VecTraits::ComponentType; static constexpr vtkm::IdComponent NUM_COMPONENTS = vtkm::VecTraits::NUM_COMPONENTS; - using StorageType = vtkm::cont::internal::Storage; - using ComponentArrayType = vtkm::cont::ArrayHandle; public: diff --git a/vtkm/cont/ArrayHandleStride.h b/vtkm/cont/ArrayHandleStride.h index 68a0b2f5e..ef48f7c6b 100644 --- a/vtkm/cont/ArrayHandleStride.h +++ b/vtkm/cont/ArrayHandleStride.h @@ -333,10 +333,6 @@ public: (ArrayHandleStride), (ArrayHandle)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: ArrayHandleStride(vtkm::Id stride, vtkm::Id offset, vtkm::Id modulo = 0, vtkm::Id divisor = 1) : Superclass(StorageType::CreateBuffers( vtkm::cont::internal::Buffer{}, diff --git a/vtkm/cont/ArrayHandleTransform.h b/vtkm/cont/ArrayHandleTransform.h index 67f8ffcdc..12994ea14 100644 --- a/vtkm/cont/ArrayHandleTransform.h +++ b/vtkm/cont/ArrayHandleTransform.h @@ -246,8 +246,7 @@ class Storage::ValueT using FunctorManager = TransformFunctorManager; using ValueType = typename StorageTagTransform::ValueType; - using SourceStorage = - Storage; + using SourceStorage = typename ArrayHandleType::StorageType; static std::vector SourceBuffers( const std::vector& buffers) @@ -323,8 +322,7 @@ class Storage< using InverseFunctorManager = TransformFunctorManager; using ValueType = typename StorageTagTransform::ValueType; - using SourceStorage = - Storage; + using SourceStorage = typename ArrayHandleType::StorageType; static std::vector SourceBuffers( const std::vector& buffers) @@ -454,10 +452,6 @@ public: typename internal::StorageTagTransform::ValueType, internal::StorageTagTransform>)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleTransform(const ArrayHandleType& handle, const FunctorType& functor = FunctorType{}, @@ -498,10 +492,6 @@ public: ValueType, internal::StorageTagTransform>)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: ArrayHandleTransform(const ArrayHandleType& handle, const FunctorType& functor = FunctorType(), const InverseFunctorType& inverseFunctor = InverseFunctorType()) diff --git a/vtkm/cont/ArrayHandleUniformPointCoordinates.h b/vtkm/cont/ArrayHandleUniformPointCoordinates.h index a0f425d27..72a33725f 100644 --- a/vtkm/cont/ArrayHandleUniformPointCoordinates.h +++ b/vtkm/cont/ArrayHandleUniformPointCoordinates.h @@ -51,10 +51,6 @@ public: ArrayHandleUniformPointCoordinates, (vtkm::cont::ArrayHandle)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleUniformPointCoordinates(vtkm::Id3 dimensions, ValueType origin = ValueType(0.0f, 0.0f, 0.0f), diff --git a/vtkm/cont/ArrayHandleView.h b/vtkm/cont/ArrayHandleView.h index ff286439d..1465d22fe 100644 --- a/vtkm/cont/ArrayHandleView.h +++ b/vtkm/cont/ArrayHandleView.h @@ -197,10 +197,6 @@ public: (vtkm::cont::ArrayHandle>)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleView(const ArrayHandleType& array, vtkm::Id startIndex, vtkm::Id numValues) : Superclass(StorageType::CreateBuffers(startIndex, numValues, array)) diff --git a/vtkm/cont/ArrayHandleXGCCoordinates.h b/vtkm/cont/ArrayHandleXGCCoordinates.h index 19ccbec13..975e2a8c9 100644 --- a/vtkm/cont/ArrayHandleXGCCoordinates.h +++ b/vtkm/cont/ArrayHandleXGCCoordinates.h @@ -291,10 +291,6 @@ public: (ArrayHandleXGCCoordinates), (vtkm::cont::ArrayHandle, vtkm::cont::StorageTagXGCCoordinates>)); -private: - using StorageType = vtkm::cont::internal::Storage; - -public: VTKM_CONT ArrayHandleXGCCoordinates(const OriginalType& array, vtkm::Id numberOfPlanes, diff --git a/vtkm/cont/ArrayHandleZip.h b/vtkm/cont/ArrayHandleZip.h index 3b96e62cb..b8a18e2fd 100644 --- a/vtkm/cont/ArrayHandleZip.h +++ b/vtkm/cont/ArrayHandleZip.h @@ -129,10 +129,6 @@ struct ArrayHandleZipTraits using Tag = StorageTagZip; - /// The storage type. - /// - using Storage = vtkm::cont::internal::Storage; - /// The superclass for ArrayHandleZip. /// using Superclass = vtkm::cont::ArrayHandle; @@ -259,9 +255,6 @@ class ArrayHandleZip // template argument is not a valid ArrayHandle type. VTKM_IS_ARRAY_HANDLE(SecondHandleType); - using StorageType = - typename internal::ArrayHandleZipTraits::Storage; - public: VTKM_ARRAY_HANDLE_SUBCLASS( ArrayHandleZip, diff --git a/vtkm/cont/testing/UnitTestArrayHandleCounting.cxx b/vtkm/cont/testing/UnitTestArrayHandleCounting.cxx index 1b1ff7da5..bad2c5fd7 100644 --- a/vtkm/cont/testing/UnitTestArrayHandleCounting.cxx +++ b/vtkm/cont/testing/UnitTestArrayHandleCounting.cxx @@ -27,12 +27,7 @@ template struct TemplatedTests { using ArrayHandleType = vtkm::cont::ArrayHandleCounting; - - using ArrayHandleType2 = vtkm::cont::ArrayHandle; - - using PortalType = - typename vtkm::cont::internal::Storage::ReadPortalType; + using PortalType = typename ArrayHandleType::ReadPortalType; void operator()(const ValueType& startingValue, const ValueType& step) { @@ -41,7 +36,8 @@ struct TemplatedTests ArrayHandleType arrayMake = vtkm::cont::make_ArrayHandleCounting(startingValue, step, ARRAY_SIZE); - ArrayHandleType2 arrayHandle = ArrayHandleType(startingValue, step, ARRAY_SIZE); + typename ArrayHandleType::Superclass arrayHandle = + ArrayHandleType(startingValue, step, ARRAY_SIZE); VTKM_TEST_ASSERT(arrayConst.GetNumberOfValues() == ARRAY_SIZE, "Counting array using constructor has wrong size.");