Make DeviceAdapterId constructor protected.

This forces users to use a defined tag, since they shouldn't need
to create their own.
This commit is contained in:
Allison Vacanti 2018-08-24 16:38:08 -04:00
parent e9d8ff4371
commit 024a75821d
6 changed files with 11 additions and 10 deletions

@ -31,7 +31,7 @@ namespace internal
DeviceAdapterId ExecutionArrayInterfaceBasic<DeviceAdapterTagCuda>::GetDeviceId() const
{
return DeviceAdapterId(VTKM_DEVICE_ADAPTER_CUDA);
return DeviceAdapterTagCuda{};
}
void ExecutionArrayInterfaceBasic<DeviceAdapterTagCuda>::Allocate(TypelessExecutionArray& execArray,

@ -44,11 +44,6 @@ namespace cont
struct DeviceAdapterId
{
constexpr explicit DeviceAdapterId(vtkm::Int8 id)
: Value(id)
{
}
constexpr bool operator==(DeviceAdapterId other) const { return this->Value == other.Value; }
constexpr bool operator!=(DeviceAdapterId other) const { return this->Value != other.Value; }
constexpr bool operator<(DeviceAdapterId other) const { return this->Value < other.Value; }
@ -60,6 +55,12 @@ struct DeviceAdapterId
constexpr vtkm::Int8 GetValue() const { return this->Value; }
protected:
constexpr explicit DeviceAdapterId(vtkm::Int8 id)
: Value(id)
{
}
private:
vtkm::Int8 Value;
};

@ -28,7 +28,7 @@ namespace internal
DeviceAdapterId ExecutionArrayInterfaceBasic<DeviceAdapterTagOpenMP>::GetDeviceId() const
{
return DeviceAdapterId(VTKM_DEVICE_ADAPTER_OPENMP);
return DeviceAdapterTagOpenMP{};
}
} // namespace internal

@ -27,7 +27,7 @@ namespace internal
{
DeviceAdapterId ExecutionArrayInterfaceBasic<DeviceAdapterTagSerial>::GetDeviceId() const
{
return DeviceAdapterId(VTKM_DEVICE_ADAPTER_SERIAL);
return DeviceAdapterTagSerial{};
}
} // namespace internal

@ -27,7 +27,7 @@ namespace internal
{
DeviceAdapterId ExecutionArrayInterfaceBasic<DeviceAdapterTagTBB>::GetDeviceId() const
{
return DeviceAdapterId(VTKM_DEVICE_ADAPTER_TBB);
return DeviceAdapterTagTBB{};
}
} // namespace internal

@ -131,7 +131,7 @@ struct ExecutionArrayInterfaceBasic<DeviceAdapterTagTestAlgorithmGeneral>
using ExecutionArrayInterfaceBasicShareWithControl::ExecutionArrayInterfaceBasicShareWithControl;
VTKM_CONT
DeviceAdapterId GetDeviceId() const final { return DeviceAdapterId(7); }
DeviceAdapterId GetDeviceId() const final { return DeviceAdapterTagTestAlgorithmGeneral{}; }
};
}
}