Skip to content
Snippets Groups Projects
Commit 188fd408 authored by Bruno Seny's avatar Bruno Seny
Browse files

Bindings for constructor with 5 arguments

parent 68ff759e
Branches
Tags
No related merge requests found
...@@ -672,16 +672,16 @@ class methodBindingT:public luaMethodBinding { ...@@ -672,16 +672,16 @@ class methodBindingT:public luaMethodBinding {
} }
}; };
template <typename tObj, typename t0=void, typename t1=void , typename t2=void, typename t3=void> template <typename tObj, typename t0=void, typename t1=void , typename t2=void, typename t3=void, typename t4=void>
class constructorBindingT:public luaMethodBinding { class constructorBindingT:public luaMethodBinding {
public: public:
int call (lua_State *L) { int call (lua_State *L) {
lua_remove(L,1); lua_remove(L,1);
(luaStack<tObj*>::push(L,new tObj(luaStack<t0>::get(L,1),luaStack<t1>::get(L,2),luaStack<t2>::get(L,3), luaStack<t3>::get(L,4)))); (luaStack<tObj*>::push(L,new tObj(luaStack<t0>::get(L,1),luaStack<t1>::get(L,2),luaStack<t2>::get(L,3), luaStack<t3>::get(L,4), luaStack<t4>::get(L, 5))));
return 1; return 1;
} }
void getArgTypeNames(std::vector<std::string> &names) { void getArgTypeNames(std::vector<std::string> &names) {
argTypeNames<void (tObj::*)(t0,t1,t2,t3)>::get(names); argTypeNames<void (tObj::*)(t0,t1,t2,t3,t4)>::get(names);
} }
}; };
...@@ -698,7 +698,7 @@ class constructorBindingT<tObj,void,void,void,void>:public luaMethodBinding { ...@@ -698,7 +698,7 @@ class constructorBindingT<tObj,void,void,void,void>:public luaMethodBinding {
} }
}; };
template <typename tObj, typename t0> template <typename tObj, typename t0>
class constructorBindingT<tObj,t0,void,void,void>:public luaMethodBinding { class constructorBindingT<tObj,t0,void,void,void,void>:public luaMethodBinding {
public: public:
int call (lua_State *L) { int call (lua_State *L) {
lua_remove(L,1); lua_remove(L,1);
...@@ -710,7 +710,7 @@ class constructorBindingT<tObj,t0,void,void,void>:public luaMethodBinding { ...@@ -710,7 +710,7 @@ class constructorBindingT<tObj,t0,void,void,void>:public luaMethodBinding {
} }
}; };
template <typename tObj, typename t0, typename t1> template <typename tObj, typename t0, typename t1>
class constructorBindingT<tObj,t0,t1,void,void>:public luaMethodBinding { class constructorBindingT<tObj,t0,t1,void,void, void>:public luaMethodBinding {
public: public:
int call (lua_State *L) { int call (lua_State *L) {
lua_remove(L,1); lua_remove(L,1);
...@@ -722,7 +722,7 @@ class constructorBindingT<tObj,t0,t1,void,void>:public luaMethodBinding { ...@@ -722,7 +722,7 @@ class constructorBindingT<tObj,t0,t1,void,void>:public luaMethodBinding {
} }
}; };
template <typename tObj, typename t0, typename t1, typename t2> template <typename tObj, typename t0, typename t1, typename t2>
class constructorBindingT<tObj,t0,t1,t2,void>:public luaMethodBinding { class constructorBindingT<tObj,t0,t1,t2,void,void>:public luaMethodBinding {
public: public:
int call (lua_State *L) { int call (lua_State *L) {
lua_remove(L,1); lua_remove(L,1);
...@@ -733,6 +733,18 @@ class constructorBindingT<tObj,t0,t1,t2,void>:public luaMethodBinding { ...@@ -733,6 +733,18 @@ class constructorBindingT<tObj,t0,t1,t2,void>:public luaMethodBinding {
argTypeNames<void (tObj::*)(t0,t1,t2)>::get(names); argTypeNames<void (tObj::*)(t0,t1,t2)>::get(names);
} }
}; };
template <typename tObj, typename t0, typename t1, typename t2, typename t3>
class constructorBindingT<tObj,t0,t1,t2,t3,void>:public luaMethodBinding {
public:
int call (lua_State *L) {
lua_remove(L,1);
(luaStack<tObj*>::push(L,new tObj(luaStack<t0>::get(L,1),luaStack<t1>::get(L,2),luaStack<t2>::get(L,3), luaStack<t3>::get(L,4))));
return 1;
}
void getArgTypeNames(std::vector<std::string> &names) {
argTypeNames<void (tObj::*)(t0,t1,t2,t3)>::get(names);
}
};
class classBinding { class classBinding {
std::string _className; std::string _className;
...@@ -850,6 +862,12 @@ public: ...@@ -850,6 +862,12 @@ public:
lua_pop(L,1); lua_pop(L,1);
return mb; return mb;
} }
template <typename tObj, typename t0, typename t1, typename t2, typename t3, typename t4>
methodBinding *setConstructor(){
luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3,t4>;
setConstructorLuaMethod(constructorLua);
return constructorLua;
}
template <typename tObj, typename t0, typename t1, typename t2, typename t3 > template <typename tObj, typename t0, typename t1, typename t2, typename t3 >
methodBinding *setConstructor(){ methodBinding *setConstructor(){
luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3>; luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3>;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment