summaryrefslogtreecommitdiffstats
path: root/squirrel_3_0_1_stable/sqrat/sqrat/sqratFunction.h
diff options
context:
space:
mode:
Diffstat (limited to 'squirrel_3_0_1_stable/sqrat/sqrat/sqratFunction.h')
-rw-r--r--squirrel_3_0_1_stable/sqrat/sqrat/sqratFunction.h751
1 files changed, 0 insertions, 751 deletions
diff --git a/squirrel_3_0_1_stable/sqrat/sqrat/sqratFunction.h b/squirrel_3_0_1_stable/sqrat/sqrat/sqratFunction.h
deleted file mode 100644
index e9eda966e..000000000
--- a/squirrel_3_0_1_stable/sqrat/sqrat/sqratFunction.h
+++ /dev/null
@@ -1,751 +0,0 @@
-//
-// SqObject: Referenced Squirrel Object Wrapper
-//
-
-//
-// Copyright (c) 2009 Brandon Jones
-// Copyirght 2011 Li-Cheng (Andy) Tai
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source
-// distribution.
-//
-
-#if !defined(_SCRAT_SQFUNC_H_)
-#define _SCRAT_SQFUNC_H_
-
-#include <squirrel.h>
-#include "sqratObject.h"
-
-namespace Sqrat {
-
-class Function {
- friend class TableBase;
- friend class Table;
- friend class ArrayBase;
- friend struct Var<Function>;
-private:
- HSQUIRRELVM vm;
- HSQOBJECT env, obj;
-
- Function(HSQUIRRELVM v, HSQOBJECT e, HSQOBJECT o) : vm(v), env(e), obj(o) {
- sq_addref(vm, &env);
- sq_addref(vm, &obj);
- }
-
-public:
- Function() {
- sq_resetobject(&env);
- sq_resetobject(&obj);
- }
-
- Function(const Function& sf) : vm(sf.vm), env(sf.env), obj(sf.obj) {
- sq_addref(vm, &env);
- sq_addref(vm, &obj);
- }
-
- Function(const Object& e, const SQChar* slot) : vm(e.GetVM()), env(e.GetObject()) {
- sq_addref(vm, &env);
- Object so = e.GetSlot(slot);
- obj = so.GetObject();
- sq_addref(vm, &obj);
- }
-
- ~Function() {
- Release();
- }
-
- Function& operator=(const Function& sf) {
- Release();
- vm = sf.vm;
- env = sf.env;
- obj = sf.obj;
- sq_addref(vm, &env);
- sq_addref(vm, &obj);
- return *this;
- }
-
- bool IsNull() {
- return sq_isnull(obj);
- }
-
- HSQOBJECT& GetEnv() {
- return env;
- }
-
- HSQOBJECT& GetFunc() {
- return obj;
- }
-
- HSQUIRRELVM& GetVM() {
- return vm;
- }
-
- void Release() {
- if(!IsNull()) {
- sq_release(vm, &env);
- sq_release(vm, &obj);
- sq_resetobject(&env);
- sq_resetobject(&obj);
- }
- }
-
- template <class R>
- R Evaluate() {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- sq_call(vm, 1, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1>
- R Evaluate(A1 a1) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
-
- sq_call(vm, 2, true, ErrorHandling::IsEnabled());
- Var<R> ret(vm, -1);
- sq_pop(vm, 2);
- return ret.value;
- }
-
- template <class R, class A1, class A2>
- R Evaluate(A1 a1, A2 a2) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
-
- sq_call(vm, 3, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3>
- R Evaluate(A1 a1, A2 a2, A3 a3) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
-
- sq_call(vm, 4, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
-
- sq_call(vm, 5, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
-
- template <class R, class A1, class A2, class A3, class A4, class A5>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
-
- sq_call(vm, 6, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
-
- sq_call(vm, 7, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
-
- sq_call(vm, 8, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
-
- sq_call(vm, 9, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
-
- sq_call(vm, 10, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
-
- sq_call(vm, 11, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
-
- sq_call(vm, 12, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
- PushVar(vm, a12);
-
- sq_call(vm, 13, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12, class A13>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
- PushVar(vm, a12);
- PushVar(vm, a13);
-
- sq_call(vm, 14, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- template <class R, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12, class A13, class A14>
- R Evaluate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
- PushVar(vm, a12);
- PushVar(vm, a13);
- PushVar(vm, a14);
-
- sq_call(vm, 15, true, ErrorHandling::IsEnabled());
- R ret = Var<R>(vm, -1).value;
- sq_pop(vm, 2);
- return ret;
- }
-
- //
- // void returns
- //
-
- void Execute() {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- sq_call(vm, 1, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1>
- void Execute(A1 a1) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
-
- sq_call(vm, 2, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2>
- void Execute(A1 a1, A2 a2) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
-
- sq_call(vm, 3, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3>
- void Execute(A1 a1, A2 a2, A3 a3) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
-
- sq_call(vm, 4, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
-
- sq_call(vm, 5, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
-
- template <class A1, class A2, class A3, class A4, class A5>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
-
- sq_call(vm, 6, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
-
- sq_call(vm, 7, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
-
- sq_call(vm, 8, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
-
- sq_call(vm, 9, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
-
- sq_call(vm, 10, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
-
- sq_call(vm, 11, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
-
- sq_call(vm, 12, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
- PushVar(vm, a12);
-
- sq_call(vm, 13, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12, class A13>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
- PushVar(vm, a12);
- PushVar(vm, a13);
-
- sq_call(vm, 14, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12, class A13, class A14>
- void Execute(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) {
- sq_pushobject(vm, obj);
- sq_pushobject(vm, env);
-
- PushVar(vm, a1);
- PushVar(vm, a2);
- PushVar(vm, a3);
- PushVar(vm, a4);
- PushVar(vm, a5);
- PushVar(vm, a6);
- PushVar(vm, a7);
- PushVar(vm, a8);
- PushVar(vm, a9);
- PushVar(vm, a10);
- PushVar(vm, a11);
- PushVar(vm, a12);
- PushVar(vm, a13);
- PushVar(vm, a14);
-
- sq_call(vm, 15, false, ErrorHandling::IsEnabled());
- sq_pop(vm, 1);
- }
-
- //
- // Operator overloads for ease of use (calls Execute)
- //
-
- void operator()() {
- Execute();
- }
-
- template <class A1>
- void operator()(A1 a1) {
- Execute(a1);
- }
-
- template <class A1, class A2>
- void operator()(A1 a1, A2 a2) {
- Execute(a1, a2);
- }
-
- template <class A1, class A2, class A3>
- void operator()(A1 a1, A2 a2, A3 a3) {
- Execute(a1, a2, a3);
- }
-
- template <class A1, class A2, class A3, class A4>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4) {
- Execute(a1, a2, a3, a4);
- }
-
-
- template <class A1, class A2, class A3, class A4, class A5>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
- Execute(a1, a2, a3, a4, a5);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
- Execute(a1, a2, a3, a4, a5, a6);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
- Execute(a1, a2, a3, a4, a5, a6, a7);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
- Execute(a1, a2, a3, a4, a5, a6, a7, a8);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
- Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) {
- Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) {
- Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) {
- Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12, class A13>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) {
- Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
- }
-
- template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11, class A12, class A13, class A14>
- void operator()(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) {
- Execute(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
- }
-};
-
-//
-// Overridden Getter/Setter
-//
-
-template<>
-struct Var<Function> {
- Function value;
- Var(HSQUIRRELVM vm, SQInteger idx) {
- HSQOBJECT sqEnv;
- HSQOBJECT sqValue;
- sq_getstackobj(vm, 1, &sqEnv);
- sq_getstackobj(vm, idx, &sqValue);
- value = Function(vm, sqEnv, sqValue);
- }
- static void push(HSQUIRRELVM vm, Function& value) {
- sq_pushobject(vm, value.GetFunc());
- }
-};
-}
-
-#endif