kDB: Knowledge DataBase
Loading...
Searching...
No Matches
ConverterManager.h
1#include "ValueToValueImplementation.h"
2
3namespace knowRuby
4{
6 {
7 public:
8 static cres_qresult<VALUE> toRubyValue(const knowCore::Value& _value);
9 static cres_qresult<knowCore::Value> toKnowCoreValue(VALUE _value);
10 static void registerConverter(const Interfaces::ValueToValue* _value);
11 template<typename _T_>
12 static void registerConverter()
13 {
14 registerConverter(new ValueToValueImplementation<_T_>());
15 }
16 private:
17 struct Private;
18 static Private* d();
19 };
20} // namespace knowRuby
21
22#define KNOWRUBY_REGISTER_VALUE_TO_VALUE_NOT_POINTER(_TYPE_) \
23 namespace knowRuby \
24 { \
25 template<> \
26 struct ValueToValueImplementationTraits<_TYPE_> \
27 { \
28 static constexpr bool as_pointer = false; \
29 }; \
30 }
31
32#define __KNOWRUBY_REGISTER_VALUE_TO_VALUE(_FACTORY_NAME_, _TYPE_) \
33 namespace \
34 { \
35 class _FACTORY_NAME_ \
36 { \
37 public: \
38 _FACTORY_NAME_() { knowRuby::ConverterManager::registerConverter<_TYPE_>(); } \
39 static _FACTORY_NAME_ s_instance; \
40 }; \
41 _FACTORY_NAME_ _FACTORY_NAME_::s_instance; \
42 }
43#define KNOWRUBY_REGISTER_VALUE_TO_VALUE(_TYPE_) \
44 __KNOWRUBY_REGISTER_VALUE_TO_VALUE(__KNOWCORE_UNIQUE_STATIC_NAME(ValueToValueRegistration), \
45 _TYPE_)
Definition Value.h:21
Definition ConverterManager.h:6
Definition ValueToValue.h:9
Definition ValueToValueImplementation.h:18
Definition ConverterManager.cpp:6