10 #ifndef vtk_m_exec_kokkos_internal_TaskBasic_h
11 #define vtk_m_exec_kokkos_internal_TaskBasic_h
27 template <
typename WType,
typename IType>
31 TaskBasic1D(
const WType& worklet,
const IType& invocation)
33 , Invocation(invocation)
37 void SetErrorMessageBuffer(
const vtkm::exec::internal::ErrorMessageBuffer& buffer)
39 this->Worklet.SetErrorMessageBuffer(buffer);
43 void operator()(
vtkm::Id index)
const
45 vtkm::exec::internal::detail::DoWorkletInvokeFunctor(
48 this->Worklet.GetThreadIndices(index,
49 this->Invocation.OutputToInputMap,
50 this->Invocation.VisitArray,
51 this->Invocation.ThreadToOutputMap,
52 this->Invocation.GetInputDomain()));
56 typename std::remove_const<WType>::type Worklet;
60 template <
typename WType>
64 explicit TaskBasic1D(
const WType& worklet)
69 void SetErrorMessageBuffer(
const vtkm::exec::internal::ErrorMessageBuffer& buffer)
71 this->Worklet.SetErrorMessageBuffer(buffer);
75 void operator()(
vtkm::Id index)
const { this->Worklet(index); }
78 typename std::remove_const<WType>::type Worklet;
81 template <
typename WType,
typename IType>
85 TaskBasic3D(
const WType& worklet,
const IType& invocation)
87 , Invocation(invocation)
91 void SetErrorMessageBuffer(
const vtkm::exec::internal::ErrorMessageBuffer& buffer)
93 this->Worklet.SetErrorMessageBuffer(buffer);
99 vtkm::exec::internal::detail::DoWorkletInvokeFunctor(
102 this->Worklet.GetThreadIndices(flatIdx,
104 this->Invocation.OutputToInputMap,
105 this->Invocation.VisitArray,
106 this->Invocation.ThreadToOutputMap,
107 this->Invocation.GetInputDomain()));
111 typename std::remove_const<WType>::type Worklet;
115 template <
typename WType>
119 explicit TaskBasic3D(
const WType& worklet)
124 void SetErrorMessageBuffer(
const vtkm::exec::internal::ErrorMessageBuffer& buffer)
126 this->Worklet.SetErrorMessageBuffer(buffer);
133 typename std::remove_const<WType>::type Worklet;
140 #endif //vtk_m_exec_kokkos_internal_TaskBasic_h