22 std::reference_wrapper<T> referenceToWrapper(T &v)
28 std::reference_wrapper<T> pointerToWrapper(T *v)
34 std::reference_wrapper<T> sharedToWrapper(std::shared_ptr<T> &v)
39 template <
typename T,
typename Base>
40 std::reference_wrapper<Base> convertToBase(T &v)
42 return std::ref<Base>(v);
46 void deleteValue(T &v)
51 template <
typename ClassType,
typename ValueType>
52 static const ValueType &getField(ClassType &i,
const std::function<ValueType &(ClassType *)> &getRef)
57 template <
typename ClassType,
typename ValueType>
58 static void setField(ClassType &i,
const std::function<ValueType &(ClassType *)> &getRef,
const ValueType &v)
65 template <
typename ClassType>
78 template <
typename ClassType,
typename BaseClassType>
84 template <
typename ClassType,
typename ValueType>
87 std::function<ValueType &(ClassType *)> getRef = std::mem_fn(member);
93 template <
typename ClassType>
96 this->registerClass<ClassType>();
103 template <
typename ReturnType>
110 template <
typename ReturnType,
typename ClassType>
113 this->registerClass<ClassType>();
118 template <
typename ReturnType,
typename ClassType>
121 this->registerClass<ClassType>();
126 template <
typename ClassType,
typename A0>
129 this->registerClass<ClassType>();
136 template <
typename A0,
typename ReturnType>
143 template <
typename A0,
typename ReturnType,
typename ClassType>
146 this->registerClass<ClassType>();
151 template <
typename A0,
typename ReturnType,
typename ClassType>
154 this->registerClass<ClassType>();
159 template <
typename ClassType,
typename A0,
typename A1>
162 this->registerClass<ClassType>();
169 template <
typename A0,
typename A1,
typename ReturnType>
176 template <
typename A0,
typename A1,
typename ReturnType,
typename ClassType>
179 this->registerClass<ClassType>();
184 template <
typename A0,
typename A1,
typename ReturnType,
typename ClassType>
187 this->registerClass<ClassType>();
192 template <
typename ClassType,
typename A0,
typename A1,
typename A2>
195 this->registerClass<ClassType>();
202 template <
typename A0,
typename A1,
typename A2,
typename ReturnType>
209 template <
typename A0,
typename A1,
typename A2,
typename ReturnType,
typename ClassType>
212 this->registerClass<ClassType>();
217 template <
typename A0,
typename A1,
typename A2,
typename ReturnType,
typename ClassType>
220 this->registerClass<ClassType>();
225 template <
typename ClassType,
typename A0,
typename A1,
typename A2,
typename A3>
228 this->registerClass<ClassType>();
235 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename ReturnType>
242 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename ReturnType,
typename ClassType>
245 this->registerClass<ClassType>();
250 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename ReturnType,
typename ClassType>
253 this->registerClass<ClassType>();
258 template <
typename ClassType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
261 this->registerClass<ClassType>();
268 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename ReturnType>
275 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename ReturnType,
typename ClassType>
278 this->registerClass<ClassType>();
283 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename ReturnType,
typename ClassType>
286 this->registerClass<ClassType>();
291 template <
typename ClassType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5>
294 this->registerClass<ClassType>();
297 this->
registerStaticMethod(
"shared", Callable::factoryShared<ClassType, A0, A1, A2, A3, A4, A5>());
301 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename ReturnType>
308 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename ReturnType,
typename ClassType>
311 this->registerClass<ClassType>();
316 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename ReturnType,
typename ClassType>
319 this->registerClass<ClassType>();
324 template <
typename ClassType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6>
327 this->registerClass<ClassType>();
329 this->
registerStaticMethod(
"new", Callable::factoryNew<ClassType, A0, A1, A2, A3, A4, A5, A6>());
330 this->
registerStaticMethod(
"shared", Callable::factoryShared<ClassType, A0, A1, A2, A3, A4, A5, A6>());
334 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename ReturnType>
341 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename ReturnType,
typename ClassType>
344 this->registerClass<ClassType>();
349 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename ReturnType,
typename ClassType>
352 this->registerClass<ClassType>();
357 template <
typename ClassType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7>
360 this->registerClass<ClassType>();
362 this->
registerStaticMethod(
"new", Callable::factoryNew<ClassType, A0, A1, A2, A3, A4, A5, A6, A7>());
363 this->
registerStaticMethod(
"shared", Callable::factoryShared<ClassType, A0, A1, A2, A3, A4, A5, A6, A7>());
367 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename ReturnType>
374 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename ReturnType,
typename ClassType>
377 this->registerClass<ClassType>();
382 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename ReturnType,
typename ClassType>
385 this->registerClass<ClassType>();
390 template <
typename ClassType,
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
393 this->registerClass<ClassType>();
394 this->
registerConstructor(Callable::factory<ClassType, A0, A1, A2, A3, A4, A5, A6, A7, A8>());
395 this->
registerStaticMethod(
"new", Callable::factoryNew<ClassType, A0, A1, A2, A3, A4, A5, A6, A7, A8>());
396 this->
registerStaticMethod(
"shared", Callable::factoryShared<ClassType, A0, A1, A2, A3, A4, A5, A6, A7, A8>());
400 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
typename ReturnType>
407 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
typename ReturnType,
typename ClassType>
410 this->registerClass<ClassType>();
415 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
typename ReturnType,
typename ClassType>
418 this->registerClass<ClassType>();
424 template <
typename ClassType>
427 this->registerClass<ClassType>();
ManagedClass & registerOpaqueConstructor(void)
Definition: ClassImpl.hpp:425
ManagedClass & registerPointerToWrapper(const Callable &toPointer)
const Callable & getReferenceToWrapper(void) const
Definition: Callable.tmpl.hpp:30
ManagedClass & registerToBaseClass(const Callable &toBase)
ManagedClass & registerMethod(const std::string &name, ReturnType(ClassType::*method)())
Definition: ClassImpl.hpp:111
ManagedClass & registerReferenceToWrapper(const Callable &toPointer)
ManagedClass & registerBaseClass(void)
Definition: ClassImpl.hpp:79
ManagedClass & registerClass(void)
Definition: ClassImpl.hpp:66
const Callable & getPointerToWrapper(void) const
ManagedClass & registerField(const std::string &name, ValueType ClassType::*member)
Definition: ClassImpl.hpp:85
ManagedClass & registerStaticMethod(const std::string &name, ReturnType(*method)())
Definition: ClassImpl.hpp:104
const Callable & getSharedToWrapper(void) const
ManagedClass & registerSharedToWrapper(const Callable &toPointer)
ManagedClass & registerConstructor(void)
Definition: ClassImpl.hpp:94