summaryrefslogtreecommitdiff
path: root/ThirdParty/toluapp/src/tests/tclass.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-08 01:17:11 +0800
committerchai <chaifix@163.com>2021-11-08 01:17:11 +0800
commitefce5b6bd5c9d4f8214a71e0f7a7c35751710a4c (patch)
tree0789475ded5c377667165a3ddb047ca6703bcf33 /ThirdParty/toluapp/src/tests/tclass.h
parented78df90944bbe6b7de7308bda2bf3a7f1bc3de6 (diff)
+ tolua
+ lpeg
Diffstat (limited to 'ThirdParty/toluapp/src/tests/tclass.h')
-rw-r--r--ThirdParty/toluapp/src/tests/tclass.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/ThirdParty/toluapp/src/tests/tclass.h b/ThirdParty/toluapp/src/tests/tclass.h
new file mode 100644
index 0000000..de64ae6
--- /dev/null
+++ b/ThirdParty/toluapp/src/tests/tclass.h
@@ -0,0 +1,121 @@
+#ifndef TCLASS_H
+#define TCLASS_H
+
+#include <stdio.h>
+
+namespace Test {
+
+class Tst_Dummy
+{
+};
+
+class Tst_A
+{
+
+ int number;
+public:
+ static Tst_A* last;
+ Tst_A () {last = this;}
+ virtual char* a () { return "A"; }
+ class Tst_AA
+ {
+ public:
+ Tst_AA () {}
+ ~Tst_AA () { }
+ char* aa () { return "AA"; }
+ };
+ class Tst_BB : public Tst_AA
+ {
+ public:
+ Tst_BB () {}
+ ~Tst_BB () {}
+ Tst_AA* Base () { return this; }
+ };
+
+ void set_number(int p_number) { number = p_number;};
+ int get_number() {return number*2;};
+
+ virtual ~Tst_A() {};
+};
+
+class Tst_B : public Tst_A
+{
+public:
+ static Tst_B* last;
+ Tst_B () {last = this;}
+ virtual char* b () { return "B"; }
+
+ static Tst_A* create() {return new Tst_B;};
+ static void* create_void() {return new Tst_B;};
+
+ virtual ~Tst_B() {};
+};
+
+class Tst_C : public Tst_B
+{
+ int i;
+public:
+ static Tst_C* last;
+ Tst_C (int n) : i(n) {last = this;}
+ virtual ~Tst_C () { printf("deleting C: %d\n",i); }
+ virtual char* c () { return "C"; }
+};
+
+inline Tst_A::Tst_AA* Tst_create_aa ()
+{
+ return new Tst_A::Tst_AA();
+}
+
+inline bool Tst_is_aa (Tst_A::Tst_AA* obj)
+{
+ return true;
+}
+
+class Tst_E {
+ void* ptr;
+
+public:
+ enum Pete {
+ ONE,
+ TWO,
+ } pete;
+
+ void get_pete(Pete p) {};
+
+ template <class T>
+ T get_t() {T a=0; return a;};
+
+ Tst_E& operator+(const Tst_E& rvalue) {return *this;};
+
+ void pars(int a=0, int b=0) {};
+ void get_pointer(void* a) {};
+
+ Tst_A a;
+
+ void set_ptr(void* p_ptr) {
+ printf("this is %p, ptr is %p\n", this, p_ptr);
+ ptr = p_ptr;
+ };
+ void* get_ptr() {return ptr;};
+
+ Tst_E(int) {};
+};
+
+class Tst_Outside {
+
+public:
+
+ Tst_Outside() {};
+};
+
+}; // end of namespace
+
+
+static void outside_func(Test::Tst_Outside* p_out, lua_State* ls) {
+
+ if (p_out) printf("method!\n");
+ else printf("static!\n");
+ //printf("luastate: %i\n", ls);
+};
+
+#endif