diff --git a/include/camp/resource.hpp b/include/camp/resource.hpp index 9128516..2b71654 100644 --- a/include/camp/resource.hpp +++ b/include/camp/resource.hpp @@ -73,7 +73,7 @@ namespace resources } return *result->get(); } - Platform get_platform() { return m_value->get_platform(); } + Platform get_platform() const { return m_value->get_platform(); } template T *allocate(size_t size, MemoryAccess ma = MemoryAccess::Device) { @@ -99,7 +99,7 @@ namespace resources { public: virtual ~ContextInterface() {} - virtual Platform get_platform() = 0; + virtual Platform get_platform() const = 0; virtual void *calloc(size_t size, MemoryAccess ma = MemoryAccess::Device) = 0; virtual void deallocate(void *p, MemoryAccess ma = MemoryAccess::Device) = 0; virtual void memcpy(void *dst, const void *src, size_t size) = 0; @@ -115,7 +115,7 @@ namespace resources { public: ContextModel(T const &modelVal) : m_modelVal(modelVal) {} - Platform get_platform() override { return m_modelVal.get_platform(); } + Platform get_platform() const override { return m_modelVal.get_platform(); } void *calloc(size_t size, MemoryAccess ma = MemoryAccess::Device) override { return m_modelVal.calloc(size, ma); } void deallocate(void *p, MemoryAccess ma = MemoryAccess::Device) override { m_modelVal.deallocate(p, ma); } void memcpy(void *dst, const void *src, size_t size) override diff --git a/include/camp/resource/cuda.hpp b/include/camp/resource/cuda.hpp index 29cf278..5b746de 100644 --- a/include/camp/resource/cuda.hpp +++ b/include/camp/resource/cuda.hpp @@ -147,7 +147,7 @@ namespace resources } // Methods - Platform get_platform() { return Platform::cuda; } + Platform get_platform() const { return Platform::cuda; } static Cuda get_default() { static Cuda c([] { diff --git a/include/camp/resource/hip.hpp b/include/camp/resource/hip.hpp index c55328a..9e57ead 100644 --- a/include/camp/resource/hip.hpp +++ b/include/camp/resource/hip.hpp @@ -143,7 +143,7 @@ namespace resources } // Methods - Platform get_platform() { return Platform::hip; } + Platform get_platform() const { return Platform::hip; } static Hip get_default() { static Hip h([] { diff --git a/include/camp/resource/host.hpp b/include/camp/resource/host.hpp index eccdf27..b402bb2 100644 --- a/include/camp/resource/host.hpp +++ b/include/camp/resource/host.hpp @@ -38,7 +38,7 @@ namespace resources Host(int /* group */ = -1) {} // Methods - Platform get_platform() { return Platform::host; } + Platform get_platform() const { return Platform::host; } static Host get_default() { static Host h; diff --git a/include/camp/resource/omp_target.hpp b/include/camp/resource/omp_target.hpp index d40ef99..406f5da 100644 --- a/include/camp/resource/omp_target.hpp +++ b/include/camp/resource/omp_target.hpp @@ -89,7 +89,7 @@ namespace resources } // Methods - Platform get_platform() { return Platform::omp_target; } + Platform get_platform() const { return Platform::omp_target; } static Omp get_default() { static Omp o; diff --git a/include/camp/resource/sycl.hpp b/include/camp/resource/sycl.hpp index 6823d49..e77396f 100644 --- a/include/camp/resource/sycl.hpp +++ b/include/camp/resource/sycl.hpp @@ -130,7 +130,7 @@ namespace resources } // Methods - Platform get_platform() { return Platform::sycl; } + Platform get_platform() const { return Platform::sycl; } static Sycl get_default() { static Sycl h; diff --git a/test/resource.cpp b/test/resource.cpp index f32824a..57a05ba 100644 --- a/test/resource.cpp +++ b/test/resource.cpp @@ -40,15 +40,15 @@ TEST(CampResource, ConvertFails) } TEST(CampResource, GetPlatform) { - ASSERT_EQ(Resource(Host()).get_platform(), Platform::host); + ASSERT_EQ(static_cast(Host()).get_platform(), Platform::host); #ifdef CAMP_HAVE_CUDA - ASSERT_EQ(Resource(Cuda()).get_platform(), Platform::cuda); + ASSERT_EQ(static_cast(Cuda()).get_platform(), Platform::cuda); #endif #ifdef CAMP_HAVE_HIP - ASSERT_EQ(Resource(Hip()).get_platform(), Platform::hip); + ASSERT_EQ(static_cast(Hip()).get_platform(), Platform::hip); #endif #ifdef CAMP_HAVE_OMP_OFFLOAD - ASSERT_EQ(Resource(Omp()).get_platform(), Platform::omp_target); + ASSERT_EQ(static_cast(Omp()).get_platform(), Platform::omp_target); #endif } TEST(CampResource, ConvertWorks)