//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt for details. // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notice for more information. // // Copyright 2014 National Technology & Engineering Solutions of Sandia, LLC (NTESS). // Copyright 2014 UT-Battelle, LLC. // Copyright 2014 Los Alamos National Security. // // Under the terms of Contract DE-NA0003525 with NTESS, // the U.S. Government retains certain rights in this software. // // Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National // Laboratory (LANL), the U.S. Government retains certain rights in // this software. //============================================================================ #ifndef vtk_m_cont_serial_internal_ArrayManagerExecutionSerial_h #define vtk_m_cont_serial_internal_ArrayManagerExecutionSerial_h #include #include #include #include namespace vtkm { namespace cont { namespace internal { template class ArrayManagerExecution : public vtkm::cont::internal::ArrayManagerExecutionShareWithControl { public: using Superclass = vtkm::cont::internal::ArrayManagerExecutionShareWithControl; using ValueType = typename Superclass::ValueType; using PortalType = typename Superclass::PortalType; using PortalConstType = typename Superclass::PortalConstType; VTKM_CONT ArrayManagerExecution(typename Superclass::StorageType* storage) : Superclass(storage) { } }; template struct ExecutionPortalFactoryBasic : public ExecutionPortalFactoryBasicShareWithControl { using Superclass = ExecutionPortalFactoryBasicShareWithControl; using typename Superclass::ValueType; using typename Superclass::PortalType; using typename Superclass::PortalConstType; using Superclass::CreatePortal; using Superclass::CreatePortalConst; }; template <> struct VTKM_CONT_EXPORT ExecutionArrayInterfaceBasic : public ExecutionArrayInterfaceBasicShareWithControl { using Superclass = ExecutionArrayInterfaceBasicShareWithControl; VTKM_CONT ExecutionArrayInterfaceBasic(StorageBasicBase& storage); VTKM_CONT virtual DeviceAdapterId GetDeviceId() const final { return VTKM_DEVICE_ADAPTER_SERIAL; } }; } // namespace internal #ifndef vtk_m_cont_serial_internal_ArrayManagerExecutionSerial_cxx VTKM_EXPORT_ARRAYHANDLES_FOR_DEVICE_ADAPTER(DeviceAdapterTagSerial) #endif // !vtk_m_cont_serial_internal_ArrayManagerExecutionSerial_cxx } } // namespace vtkm::cont #endif //vtk_m_cont_serial_internal_ArrayManagerExecutionSerial_h