Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/objecthierarchie/src/Test.h @ 244

Last change on this file since 244 was 244, checked in by landauf, 16 years ago

reimplementation of the factory and parts of the class-hierarchy-generating-algorithm. interfaces with protected constructors are now allowed.

File size: 2.9 KB
Line 
1#ifndef _Test_H__
2#define _Test_H__
3
4#include "BaseObject.h"
5#include "IdentifierIncludes.h"
6
7namespace orxonox
8{
9    class Interface1 : virtual public OrxonoxClass
10    {
11        protected:
12            Interface1() { RegisterRootObject(Interface1); }
13    };
14
15    class Interface2 : virtual public OrxonoxClass
16    {
17        protected:
18            Interface2() { RegisterRootObject(Interface2); }
19    };
20
21    class A1 : public BaseObject
22    {
23        public:
24            A1() { RegisterObject(A1); }
25    };
26
27    class A2 : public BaseObject
28    {
29        public:
30            A2() { RegisterObject(A2); }
31    };
32
33    class A3: public BaseObject, public Interface1
34    {
35        public:
36            A3() { RegisterObject(A3); }
37    };
38
39    class A1B1 : public A1
40    {
41        public:
42            A1B1() { RegisterObject(A1B1); }
43    };
44
45    class A1B2 : public A1
46    {
47        public:
48            A1B2() { RegisterObject(A1B2); }
49    };
50
51    class A2B1 : public A2
52    {
53        public:
54            A2B1() { RegisterObject(A2B1); }
55    };
56
57    class A2B2 : public A2, Interface1
58    {
59        public:
60            A2B2() { RegisterObject(A2B2); }
61    };
62
63    class A3B1 : public A3
64    {
65        public:
66            A3B1() { RegisterObject(A3B1); }
67    };
68
69    class A3B2 : public A3, Interface2
70    {
71        public:
72            A3B2() { RegisterObject(A3B2); }
73    };
74
75    class A1B1C1 : public A1B1
76    {
77        public:
78            A1B1C1() { RegisterObject(A1B1C1); }
79    };
80
81    class A1B1C2 : public A1B1
82    {
83        public:
84            A1B1C2() { RegisterObject(A1B1C2); }
85    };
86
87    class A1B2C1 : public A1B2
88    {
89        public:
90            A1B2C1() { RegisterObject(A1B2C1); }
91    };
92
93    class A2B1C1 : public A2B1, Interface2
94    {
95        public:
96            A2B1C1() { RegisterObject(A2B1C1); }
97    };
98
99    class A2B2C1 : public A2B2
100    {
101        public:
102            A2B2C1() { RegisterObject(A2B2C1); }
103    };
104
105    class A3B1C1 : public A3B1
106    {
107        public:
108            A3B1C1() { RegisterObject(A3B1C1); }
109    };
110
111    class A3B1C2 : public A3B1, Interface2
112    {
113        public:
114            A3B1C2() { RegisterObject(A3B1C2); }
115    };
116
117    class A3B2C1 : public A3B2
118    {
119        public:
120            A3B2C1() { RegisterObject(A3B2C1); }
121    };
122
123    class A3B2C2 : public A3B2
124    {
125        public:
126            A3B2C2() { RegisterObject(A3B2C2); }
127    };
128
129    CreateFactory(A1);
130    CreateFactory(A2);
131    CreateFactory(A3);
132    CreateFactory(A1B1);
133    CreateFactory(A1B2);
134    CreateFactory(A2B1);
135    CreateFactory(A2B2);
136    CreateFactory(A3B1);
137    CreateFactory(A3B2);
138    CreateFactory(A1B1C1);
139    CreateFactory(A1B1C2);
140    CreateFactory(A1B2C1);
141    CreateFactory(A2B1C1);
142    CreateFactory(A2B2C1);
143    CreateFactory(A3B1C1);
144    CreateFactory(A3B1C2);
145    CreateFactory(A3B2C1);
146    CreateFactory(A3B2C2);
147}
148
149#endif
Note: See TracBrowser for help on using the repository browser.