Fixed binary search: no more infinite loops when vendor is unknown.
[tangerine.git] / workbench / system / Wanderer / portable-include / zune_AROS / customclasses.h
blob306e4519da922db9432d3b1731eeb0ebdf1af727
1 /*Adapted to SDI by ShInKurO*/
3 #ifndef ZUNE_CUSTOMCLASSES_H
4 #define ZUNE_CUSTOMCLASSES_H
7 #define __ZUNE_CUSTOMCLASS_START(name) \
8 DISPATCHERPROTO(name ## _Dispatcher); \
9 DISPATCHER(name ## _Dispatcher) \
10 { \
11 switch (msg->MethodID) \
12 { \
15 #define __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
16 default: \
17 return DoSuperMethodA(cl,obj,msg); \
18 } \
20 return (IPTR) NULL; \
21 } \
23 struct MUI_CustomClass * name ## _CLASS = NULL; \
25 int name ## _Initialize(void); \
26 int name ## _Initialize(void) \
27 { \
28 D(bug("call MUI_CreateCustomClass `" #name "'\n")); \
29 name ## _CLASS = MUI_CreateCustomClass \
30 ( \
31 base, parent_name, parent_class, \
32 sizeof(struct name ## _DATA), (APTR) name ## _Dispatcher \
33 ); \
35 if (!name ## _CLASS) \
36 { \
37 D(bug("Could not create Zune custom class `" #name "'.\n")); \
39 return 0; \
40 } \
41 else \
42 { \
43 D(bug("class`" #name "' created =%ld\n", name ## _CLASS)); \
44 } \
46 return 1; \
47 } \
49 void name ## _Deinitialize(void); \
50 void name ## _Deinitialize(void) \
51 { \
52 D(bug("call MUI_DeleteCustomClass `" #name "' = %ld\n", name ## _CLASS)); \
53 MUI_DeleteCustomClass(name ## _CLASS); \
54 D(bug("call MUI_CreateCustomClass done `" #name "'\n")); \
55 } \
57 #define __ZUNE_CUSTOMCLASS_METHOD(mname, mid, m_msg_type) \
58 case mid: \
60 return (IPTR) mname(cl, obj, (m_msg_type) msg) \
65 #define ZUNE_CUSTOMCLASS_1(name, base, parent_name, parent_class, \
66 m1, m1_msg_type) \
67 __ZUNE_CUSTOMCLASS_START(name) \
68 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
69 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
71 #define ZUNE_CUSTOMCLASS_2(name, base, parent_name, parent_class, \
72 m1, m1_msg_type, \
73 m2, m2_msg_type) \
74 __ZUNE_CUSTOMCLASS_START(name) \
75 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
76 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
77 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
79 #define ZUNE_CUSTOMCLASS_3(name, base, parent_name, parent_class, \
80 m1, m1_msg_type, \
81 m2, m2_msg_type, \
82 m3, m3_msg_type) \
83 __ZUNE_CUSTOMCLASS_START(name) \
84 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
85 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
86 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
87 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
89 #define ZUNE_CUSTOMCLASS_4(name, base, parent_name, parent_class, \
90 m1, m1_msg_type, \
91 m2, m2_msg_type, \
92 m3, m3_msg_type, \
93 m4, m4_msg_type) \
94 __ZUNE_CUSTOMCLASS_START(name) \
95 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
96 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
97 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
98 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
99 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
101 #define ZUNE_CUSTOMCLASS_5(name, base, parent_name, parent_class, \
102 m1, m1_msg_type, \
103 m2, m2_msg_type, \
104 m3, m3_msg_type, \
105 m4, m4_msg_type, \
106 m5, m5_msg_type) \
107 __ZUNE_CUSTOMCLASS_START(name) \
108 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
109 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
110 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
111 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
112 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
113 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
115 #define ZUNE_CUSTOMCLASS_6(name, base, parent_name, parent_class, \
116 m1, m1_msg_type, \
117 m2, m2_msg_type, \
118 m3, m3_msg_type, \
119 m4, m4_msg_type, \
120 m5, m5_msg_type, \
121 m6, m6_msg_type) \
122 __ZUNE_CUSTOMCLASS_START(name) \
123 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
124 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
125 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
126 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
127 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
128 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
129 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
131 #define ZUNE_CUSTOMCLASS_7(name, base, parent_name, parent_class, \
132 m1, m1_msg_type, \
133 m2, m2_msg_type, \
134 m3, m3_msg_type, \
135 m4, m4_msg_type, \
136 m5, m5_msg_type, \
137 m6, m6_msg_type, \
138 m7, m7_msg_type) \
139 __ZUNE_CUSTOMCLASS_START(name) \
140 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
141 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
142 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
143 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
144 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
145 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
146 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
147 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
149 #define ZUNE_CUSTOMCLASS_8(name, base, parent_name, parent_class, \
150 m1, m1_msg_type, \
151 m2, m2_msg_type, \
152 m3, m3_msg_type, \
153 m4, m4_msg_type, \
154 m5, m5_msg_type, \
155 m6, m6_msg_type, \
156 m7, m7_msg_type, \
157 m8, m8_msg_type) \
158 __ZUNE_CUSTOMCLASS_START(name) \
159 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
160 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
161 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
162 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
163 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
164 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
165 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
166 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
167 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
169 #define ZUNE_CUSTOMCLASS_9(name, base, parent_name, parent_class, \
170 m1, m1_msg_type, \
171 m2, m2_msg_type, \
172 m3, m3_msg_type, \
173 m4, m4_msg_type, \
174 m5, m5_msg_type, \
175 m6, m6_msg_type, \
176 m7, m7_msg_type, \
177 m8, m8_msg_type, \
178 m9, m9_msg_type) \
179 __ZUNE_CUSTOMCLASS_START(name) \
180 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
181 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
182 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
183 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
184 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
185 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
186 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
187 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
188 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
189 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
191 #define ZUNE_CUSTOMCLASS_10(name, base, parent_name, parent_class, \
192 m1, m1_msg_type, \
193 m2, m2_msg_type, \
194 m3, m3_msg_type, \
195 m4, m4_msg_type, \
196 m5, m5_msg_type, \
197 m6, m6_msg_type, \
198 m7, m7_msg_type, \
199 m8, m8_msg_type, \
200 m9, m9_msg_type, \
201 m10, m10_msg_type) \
202 __ZUNE_CUSTOMCLASS_START(name) \
203 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
204 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
205 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
206 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
207 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
208 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
209 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
210 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
211 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
212 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
213 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class) \
215 /*************************************************************************/
217 #define __ZUNE_CUSTOMCLASS_REMPARENS(...) __VA_ARGS__
219 #define __ZUNE_CUSTOMCLASS_INLINEMETHOD(cname, mname, m_msg_type, m_code) \
220 IPTR mname(Class *CLASS, Object *self, m_msg_type message); \
221 IPTR mname(Class *CLASS, Object *self, m_msg_type message) \
223 struct cname ## _DATA *data __unused = INST_DATA(CLASS, self); \
225 { __ZUNE_CUSTOMCLASS_REMPARENS m_code } \
228 #define __ZUNE_CUSTOMCLASS_INSTDATA(cname, inst_data) \
229 struct cname ## _DATA { __ZUNE_CUSTOMCLASS_REMPARENS inst_data }
231 #define ZUNE_CUSTOMCLASS_INLINE_1(name, base, parent_name, parent_class, \
232 inst_data, \
233 m1, m1_msg_type, m1_code) \
234 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
235 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
236 __ZUNE_CUSTOMCLASS_START(name) \
237 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
238 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
240 #define ZUNE_CUSTOMCLASS_INLINE_2(name, base, parent_name, parent_class, \
241 inst_data, \
242 m1, m1_msg_type, m1_code, \
243 m2, m2_msg_type, m2_code) \
244 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
245 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
246 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
247 __ZUNE_CUSTOMCLASS_START(name) \
248 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
249 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
250 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
252 #define ZUNE_CUSTOMCLASS_INLINE_3(name, base, parent_name, parent_class, \
253 inst_data, \
254 m1, m1_msg_type, m1_code, \
255 m2, m2_msg_type, m2_code, \
256 m3, m3_msg_type, m3_code) \
257 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
258 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
259 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
260 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
261 __ZUNE_CUSTOMCLASS_START(name) \
262 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
263 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
264 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
265 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
267 #define ZUNE_CUSTOMCLASS_INLINE_4(name, base, parent_name, parent_class, \
268 inst_data, \
269 m1, m1_msg_type, m1_code, \
270 m2, m2_msg_type, m2_code, \
271 m3, m3_msg_type, m3_code, \
272 m4, m4_msg_type, m4_code) \
273 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
274 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
275 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
276 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
277 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
278 __ZUNE_CUSTOMCLASS_START(name) \
279 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
280 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
281 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
282 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
283 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
285 #define ZUNE_CUSTOMCLASS_INLINE_5(name, base, parent_name, parent_class, \
286 inst_data, \
287 m1, m1_msg_type, m1_code, \
288 m2, m2_msg_type, m2_code, \
289 m3, m3_msg_type, m3_code, \
290 m4, m4_msg_type, m4_code, \
291 m5, m5_msg_type, m5_code) \
292 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
293 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
294 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
295 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
296 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
297 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
298 __ZUNE_CUSTOMCLASS_START(name) \
299 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
300 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
301 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
302 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
303 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
304 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
306 #define ZUNE_CUSTOMCLASS_INLINE_6(name, base, parent_name, parent_class, \
307 inst_data, \
308 m1, m1_msg_type, m1_code, \
309 m2, m2_msg_type, m2_code, \
310 m3, m3_msg_type, m3_code, \
311 m4, m4_msg_type, m4_code, \
312 m5, m5_msg_type, m5_code, \
313 m6, m6_msg_type, m6_code) \
314 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
315 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
316 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
317 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
318 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
319 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
320 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
321 __ZUNE_CUSTOMCLASS_START(name) \
322 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
323 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
324 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
325 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
326 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
327 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
328 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
330 #define ZUNE_CUSTOMCLASS_INLINE_7(name, base, parent_name, parent_class, \
331 inst_data, \
332 m1, m1_msg_type, m1_code, \
333 m2, m2_msg_type, m2_code, \
334 m3, m3_msg_type, m3_code, \
335 m4, m4_msg_type, m4_code, \
336 m5, m5_msg_type, m5_code, \
337 m6, m6_msg_type, m6_code, \
338 m7, m7_msg_type, m7_code) \
339 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
340 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
341 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
342 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
343 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
344 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
345 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
346 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
347 __ZUNE_CUSTOMCLASS_START(name) \
348 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
349 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
350 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
351 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
352 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
353 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
354 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
355 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
357 #define ZUNE_CUSTOMCLASS_INLINE_8(name, base, parent_name, parent_class, \
358 inst_data, \
359 m1, m1_msg_type, m1_code, \
360 m2, m2_msg_type, m2_code, \
361 m3, m3_msg_type, m3_code, \
362 m4, m4_msg_type, m4_code, \
363 m5, m5_msg_type, m5_code, \
364 m6, m6_msg_type, m6_code, \
365 m7, m7_msg_type, m7_code, \
366 m8, m8_msg_type, m8_code) \
367 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
368 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
369 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
370 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
371 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
372 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
373 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
374 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
375 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
376 __ZUNE_CUSTOMCLASS_START(name) \
377 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
378 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
379 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
380 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
381 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
382 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
383 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
384 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
385 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
387 #define ZUNE_CUSTOMCLASS_INLINE_9(name, base, parent_name, parent_class, \
388 inst_data, \
389 m1, m1_msg_type, m1_code, \
390 m2, m2_msg_type, m2_code, \
391 m3, m3_msg_type, m3_code, \
392 m4, m4_msg_type, m4_code, \
393 m5, m5_msg_type, m5_code, \
394 m6, m6_msg_type, m6_code, \
395 m7, m7_msg_type, m7_code, \
396 m8, m8_msg_type, m8_code, \
397 m9, m9_msg_type, m9_code) \
398 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
399 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
400 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
401 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
402 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
403 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
404 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
405 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
406 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
407 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
408 __ZUNE_CUSTOMCLASS_START(name) \
409 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
410 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
411 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
412 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
413 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
414 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
415 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
416 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
417 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
418 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
420 #define ZUNE_CUSTOMCLASS_INLINE_10(name, base, parent_name, parent_class, \
421 inst_data, \
422 m1, m1_msg_type, m1_code, \
423 m2, m2_msg_type, m2_code, \
424 m3, m3_msg_type, m3_code, \
425 m4, m4_msg_type, m4_code, \
426 m5, m5_msg_type, m5_code, \
427 m6, m6_msg_type, m6_code, \
428 m7, m7_msg_type, m7_code, \
429 m8, m8_msg_type, m8_code, \
430 m9, m9_msg_type, m9_code, \
431 m10, m10_msg_type, m10_code) \
432 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
433 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
434 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
435 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
436 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
437 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
438 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
439 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
440 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
441 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
442 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
443 __ZUNE_CUSTOMCLASS_START(name) \
444 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
445 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
446 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
447 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
448 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
449 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
450 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
451 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
452 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
453 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
454 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
456 #define ZUNE_CUSTOMCLASS_INLINE_11(name, base, parent_name, parent_class, \
457 inst_data, \
458 m1, m1_msg_type, m1_code, \
459 m2, m2_msg_type, m2_code, \
460 m3, m3_msg_type, m3_code, \
461 m4, m4_msg_type, m4_code, \
462 m5, m5_msg_type, m5_code, \
463 m6, m6_msg_type, m6_code, \
464 m7, m7_msg_type, m7_code, \
465 m8, m8_msg_type, m8_code, \
466 m9, m9_msg_type, m9_code, \
467 m10, m10_msg_type, m10_code, \
468 m11, m11_msg_type, m11_code) \
469 __ZUNE_CUSTOMCLASS_INSTDATA(name, inst_data); \
470 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m1, m1_msg_type, m1_code); \
471 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m2, m2_msg_type, m2_code); \
472 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m3, m3_msg_type, m3_code); \
473 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m4, m4_msg_type, m4_code); \
474 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m5, m5_msg_type, m5_code); \
475 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m6, m6_msg_type, m6_code); \
476 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m7, m7_msg_type, m7_code); \
477 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m8, m8_msg_type, m8_code); \
478 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m9, m9_msg_type, m9_code); \
479 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m10, m10_msg_type, m10_code); \
480 __ZUNE_CUSTOMCLASS_INLINEMETHOD(name, name ## __ ## m11, m11_msg_type, m11_code); \
481 __ZUNE_CUSTOMCLASS_START(name) \
482 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m1, m1, m1_msg_type); \
483 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m2, m2, m2_msg_type); \
484 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m3, m3, m3_msg_type); \
485 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m4, m4, m4_msg_type); \
486 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m5, m5, m5_msg_type); \
487 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m6, m6, m6_msg_type); \
488 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m7, m7, m7_msg_type); \
489 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m8, m8, m8_msg_type); \
490 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m9, m9, m9_msg_type); \
491 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m10, m10, m10_msg_type); \
492 __ZUNE_CUSTOMCLASS_METHOD(name ## __ ## m11, m11, m11_msg_type); \
493 __ZUNE_CUSTOMCLASS_END(name, base, parent_name, parent_class)
495 #endif /* !ZUNE_CUSTOMCLASSES_H */