From 3a0dc5b5ea6ab53b62ca4d3f302bb770be5609eb Mon Sep 17 00:00:00 2001 From: Yichao Yu <yyc1992@gmail.com> Date: Tue, 17 Jun 2014 20:58:07 +0800 Subject: [PATCH] clobj name --- src/c_wrapper/clhelper.h | 7 +++---- src/c_wrapper/clobj.h | 14 ++++---------- src/c_wrapper/memory_map.h | 1 + src/c_wrapper/memory_object.h | 1 + 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/c_wrapper/clhelper.h b/src/c_wrapper/clhelper.h index 2c7f66b9..11c3c9d7 100644 --- a/src/c_wrapper/clhelper.h +++ b/src/c_wrapper/clhelper.h @@ -54,7 +54,7 @@ convert_opaque_array_info(T &&buf) { generic_info info; info.dontfree = 0; - info.opaque_class = CLObj::get_class_t(); + info.opaque_class = CLObj::class_id; info.type = _copy_str(std::string("void*[") + tostring(buf.len()) + "]"); info.value = buf_to_base<CLObj>(std::forward<T>(buf)).release(); return info; @@ -73,7 +73,7 @@ get_opaque_info(cl_int (*func)(ArgTypes...), const char *name, ¶m_value, nullptr); generic_info info; info.dontfree = 0; - info.opaque_class = CLObj::get_class_t(); + info.opaque_class = CLObj::class_id; info.type = "void *"; if (param_value) { info.value = (void*)(new CLObj(param_value, /*retain*/ true)); @@ -194,11 +194,10 @@ public: PYOPENCL_INLINE void print(std::ostream &stm) { - // TODO if (!out) { stm << &m_clobj; } else { - stm << *m_ret << "<" << m_clobj << ">"; + stm << CLObj::class_name << "(" << *m_ret << ")<" << m_clobj << ">"; } } }; diff --git a/src/c_wrapper/clobj.h b/src/c_wrapper/clobj.h index 1591359e..4846f26f 100644 --- a/src/c_wrapper/clobj.h +++ b/src/c_wrapper/clobj.h @@ -3,12 +3,9 @@ #ifndef __PYOPENCL_CLOBJ_H #define __PYOPENCL_CLOBJ_H -#define PYOPENCL_DEF_CL_CLASS(name) \ - static PYOPENCL_INLINE class_t \ - get_class_t() \ - { \ - return CLASS_##name; \ - } +#define PYOPENCL_DEF_CL_CLASS(name) \ + constexpr static class_t class_id = CLASS_##name; \ + constexpr static const char *class_name = #name; namespace pyopencl { @@ -51,8 +48,7 @@ template<typename CLObj> static PYOPENCL_INLINE void _print_clobj(std::ostream &stm, CLObj *obj) { - // TODO - stm << obj << "<" << obj->data() << ">"; + stm << CLObj::class_name << "(" << obj << ")<" << obj->data() << ">"; } template<typename CLObj> @@ -63,7 +59,6 @@ class CLArg<CLObj, private: CLObj &m_obj; public: - constexpr static bool is_out = false; CLArg(CLObj &obj) : m_obj(obj) { } @@ -88,7 +83,6 @@ class CLArg<CLObj*, private: CLObj *m_obj; public: - constexpr static bool is_out = false; CLArg(CLObj *obj) : m_obj(obj) { } diff --git a/src/c_wrapper/memory_map.h b/src/c_wrapper/memory_map.h index ac7bdc17..714a451d 100644 --- a/src/c_wrapper/memory_map.h +++ b/src/c_wrapper/memory_map.h @@ -19,6 +19,7 @@ private: command_queue m_queue; memory_object m_mem; public: + constexpr static const char *class_name = "MEMORY_MAP"; PYOPENCL_INLINE memory_map(const command_queue *queue, const memory_object *mem, void *ptr) : clobj(ptr), m_valid(true), m_queue(*queue), m_mem(*mem) diff --git a/src/c_wrapper/memory_object.h b/src/c_wrapper/memory_object.h index 07f17d58..42c60bc1 100644 --- a/src/c_wrapper/memory_object.h +++ b/src/c_wrapper/memory_object.h @@ -14,6 +14,7 @@ class memory_object : public clobj<cl_mem> { private: mutable volatile std::atomic_bool m_valid; public: + constexpr static const char *class_name = "MEMORY_OBJECT"; PYOPENCL_INLINE memory_object(cl_mem mem, bool retain) : clobj(mem), m_valid(true) -- GitLab