Beast - Music Synthesizer and Composer  0.11.1+10.g2da35
bsegenclosures.hh
Go to the documentation of this file.
1 
2 /* Void0Closure */
3 template<class T>
4 class Void0Closure : public CxxClosure {
5  typedef void (T::*MCb) (); /* Member Callback */
6  T *o;
7  MCb f;
8 public:
9  Void0Closure (T *t, MCb _f) : o(t), f(_f) {
10  sig_tokens = "|";
11  }
12  void operator() (Value *return_value,
13  const Value *param_values,
14  gpointer invocation_hint,
15  gpointer marshal_data) {
16  (o->*f) ();
17  }
18 };
19 template<class T>
20 Void0Closure<T>* Closure (T *t, void (T::*f) ()) {
21  return new Void0Closure<T> (t, f);
22 }
23 
24 /* Void1Closure */
25 template<class T, typename A1>
26 class Void1Closure : public CxxClosure {
27  typedef void (T::*MCb) (A1); /* Member Callback */
28  T *o;
29  MCb f;
30  Arg<A1> a1;
31 public:
32  Void1Closure (T *t, MCb _f) : o(t), f(_f) {
33  sig_tokens = "|" + a1.token();
34  }
35  void operator() (Value *return_value,
36  const Value *param_values,
37  gpointer invocation_hint,
38  gpointer marshal_data) {
39  (o->*f) (a1.get (param_values + 0));
40  }
41 };
42 template<class T, typename A1>
43 Void1Closure<T, A1>* Closure (T *t, void (T::*f) (A1)) {
44  return new Void1Closure<T, A1> (t, f);
45 }
46 
47 /* Void2Closure */
48 template<class T, typename A1, typename A2>
49 class Void2Closure : public CxxClosure {
50  typedef void (T::*MCb) (A1, A2); /* Member Callback */
51  T *o;
52  MCb f;
53  Arg<A1> a1; Arg<A2> a2;
54 public:
55  Void2Closure (T *t, MCb _f) : o(t), f(_f) {
56  sig_tokens = "|" + a1.token() + a2.token();
57  }
58  void operator() (Value *return_value,
59  const Value *param_values,
60  gpointer invocation_hint,
61  gpointer marshal_data) {
62  (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1));
63  }
64 };
65 template<class T, typename A1, typename A2>
66 Void2Closure<T, A1, A2>* Closure (T *t, void (T::*f) (A1, A2)) {
67  return new Void2Closure<T, A1, A2> (t, f);
68 }
69 
70 /* Void3Closure */
71 template<class T, typename A1, typename A2, typename A3>
72 class Void3Closure : public CxxClosure {
73  typedef void (T::*MCb) (A1, A2, A3); /* Member Callback */
74  T *o;
75  MCb f;
76  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3;
77 public:
78  Void3Closure (T *t, MCb _f) : o(t), f(_f) {
79  sig_tokens = "|" + a1.token() + a2.token() + a3.token();
80  }
81  void operator() (Value *return_value,
82  const Value *param_values,
83  gpointer invocation_hint,
84  gpointer marshal_data) {
85  (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2));
86  }
87 };
88 template<class T, typename A1, typename A2, typename A3>
89 Void3Closure<T, A1, A2, A3>* Closure (T *t, void (T::*f) (A1, A2, A3)) {
90  return new Void3Closure<T, A1, A2, A3> (t, f);
91 }
92 
93 /* Void4Closure */
94 template<class T, typename A1, typename A2, typename A3, typename A4>
95 class Void4Closure : public CxxClosure {
96  typedef void (T::*MCb) (A1, A2, A3, A4); /* Member Callback */
97  T *o;
98  MCb f;
99  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4;
100 public:
101  Void4Closure (T *t, MCb _f) : o(t), f(_f) {
102  sig_tokens = "|" + a1.token() + a2.token() + a3.token() + a4.token();
103  }
104  void operator() (Value *return_value,
105  const Value *param_values,
106  gpointer invocation_hint,
107  gpointer marshal_data) {
108  (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3));
109  }
110 };
111 template<class T, typename A1, typename A2, typename A3, typename A4>
112 Void4Closure<T, A1, A2, A3, A4>* Closure (T *t, void (T::*f) (A1, A2, A3, A4)) {
113  return new Void4Closure<T, A1, A2, A3, A4> (t, f);
114 }
115 
116 /* Void5Closure */
117 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5>
118 class Void5Closure : public CxxClosure {
119  typedef void (T::*MCb) (A1, A2, A3, A4, A5); /* Member Callback */
120  T *o;
121  MCb f;
122  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5;
123 public:
124  Void5Closure (T *t, MCb _f) : o(t), f(_f) {
125  sig_tokens = "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token();
126  }
127  void operator() (Value *return_value,
128  const Value *param_values,
129  gpointer invocation_hint,
130  gpointer marshal_data) {
131  (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4));
132  }
133 };
134 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5>
135 Void5Closure<T, A1, A2, A3, A4, A5>* Closure (T *t, void (T::*f) (A1, A2, A3, A4, A5)) {
136  return new Void5Closure<T, A1, A2, A3, A4, A5> (t, f);
137 }
138 
139 /* Void6Closure */
140 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
141 class Void6Closure : public CxxClosure {
142  typedef void (T::*MCb) (A1, A2, A3, A4, A5, A6); /* Member Callback */
143  T *o;
144  MCb f;
145  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5; Arg<A6> a6;
146 public:
147  Void6Closure (T *t, MCb _f) : o(t), f(_f) {
148  sig_tokens = "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token() + a6.token();
149  }
150  void operator() (Value *return_value,
151  const Value *param_values,
152  gpointer invocation_hint,
153  gpointer marshal_data) {
154  (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4), a6.get (param_values + 5));
155  }
156 };
157 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
158 Void6Closure<T, A1, A2, A3, A4, A5, A6>* Closure (T *t, void (T::*f) (A1, A2, A3, A4, A5, A6)) {
159  return new Void6Closure<T, A1, A2, A3, A4, A5, A6> (t, f);
160 }
161 
162 /* Void7Closure */
163 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
164 class Void7Closure : public CxxClosure {
165  typedef void (T::*MCb) (A1, A2, A3, A4, A5, A6, A7); /* Member Callback */
166  T *o;
167  MCb f;
168  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5; Arg<A6> a6; Arg<A7> a7;
169 public:
170  Void7Closure (T *t, MCb _f) : o(t), f(_f) {
171  sig_tokens = "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token() + a6.token() + a7.token();
172  }
173  void operator() (Value *return_value,
174  const Value *param_values,
175  gpointer invocation_hint,
176  gpointer marshal_data) {
177  (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4), a6.get (param_values + 5), a7.get (param_values + 6));
178  }
179 };
180 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
181 Void7Closure<T, A1, A2, A3, A4, A5, A6, A7>* Closure (T *t, void (T::*f) (A1, A2, A3, A4, A5, A6, A7)) {
183 }
184 
185 /* Void8Closure */
186 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
187 class Void8Closure : public CxxClosure {
188  typedef void (T::*MCb) (A1, A2, A3, A4, A5, A6, A7, A8); /* Member Callback */
189  T *o;
190  MCb f;
191  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5; Arg<A6> a6; Arg<A7> a7; Arg<A8> a8;
192 public:
193  Void8Closure (T *t, MCb _f) : o(t), f(_f) {
194  sig_tokens = "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token() + a6.token() + a7.token() + a8.token();
195  }
196  void operator() (Value *return_value,
197  const Value *param_values,
198  gpointer invocation_hint,
199  gpointer marshal_data) {
200  (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4), a6.get (param_values + 5), a7.get (param_values + 6), a8.get (param_values + 7));
201  }
202 };
203 template<class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
204 Void8Closure<T, A1, A2, A3, A4, A5, A6, A7, A8>* Closure (T *t, void (T::*f) (A1, A2, A3, A4, A5, A6, A7, A8)) {
206 }
207 
208 /* Ret0Closure */
209 template<typename R, class T>
210 class Ret0Closure : public CxxClosure {
211  typedef R (T::*MCb) (); /* Member Callback */
212  T *o;
213  MCb f;
214  Arg<R> r;
215 public:
216  Ret0Closure (T *t, MCb _f) : o(t), f(_f) {
217  sig_tokens = r.token() + "|";
218  }
219  void operator() (Value *return_value,
220  const Value *param_values,
221  gpointer invocation_hint,
222  gpointer marshal_data) {
223  r.set (return_value, (o->*f) ());
224  }
225 };
226 template<typename R, class T>
227 Ret0Closure<R, T>* Closure (T *t, R (T::*f) ()) {
228  return new Ret0Closure<R, T> (t, f);
229 }
230 
231 /* Ret1Closure */
232 template<typename R, class T, typename A1>
233 class Ret1Closure : public CxxClosure {
234  typedef R (T::*MCb) (A1); /* Member Callback */
235  T *o;
236  MCb f;
237  Arg<R> r;
238  Arg<A1> a1;
239 public:
240  Ret1Closure (T *t, MCb _f) : o(t), f(_f) {
241  sig_tokens = r.token() + "|" + a1.token();
242  }
243  void operator() (Value *return_value,
244  const Value *param_values,
245  gpointer invocation_hint,
246  gpointer marshal_data) {
247  r.set (return_value, (o->*f) (a1.get (param_values + 0)));
248  }
249 };
250 template<typename R, class T, typename A1>
251 Ret1Closure<R, T, A1>* Closure (T *t, R (T::*f) (A1)) {
252  return new Ret1Closure<R, T, A1> (t, f);
253 }
254 
255 /* Ret2Closure */
256 template<typename R, class T, typename A1, typename A2>
257 class Ret2Closure : public CxxClosure {
258  typedef R (T::*MCb) (A1, A2); /* Member Callback */
259  T *o;
260  MCb f;
261  Arg<R> r;
262  Arg<A1> a1; Arg<A2> a2;
263 public:
264  Ret2Closure (T *t, MCb _f) : o(t), f(_f) {
265  sig_tokens = r.token() + "|" + a1.token() + a2.token();
266  }
267  void operator() (Value *return_value,
268  const Value *param_values,
269  gpointer invocation_hint,
270  gpointer marshal_data) {
271  r.set (return_value, (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1)));
272  }
273 };
274 template<typename R, class T, typename A1, typename A2>
275 Ret2Closure<R, T, A1, A2>* Closure (T *t, R (T::*f) (A1, A2)) {
276  return new Ret2Closure<R, T, A1, A2> (t, f);
277 }
278 
279 /* Ret3Closure */
280 template<typename R, class T, typename A1, typename A2, typename A3>
281 class Ret3Closure : public CxxClosure {
282  typedef R (T::*MCb) (A1, A2, A3); /* Member Callback */
283  T *o;
284  MCb f;
285  Arg<R> r;
286  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3;
287 public:
288  Ret3Closure (T *t, MCb _f) : o(t), f(_f) {
289  sig_tokens = r.token() + "|" + a1.token() + a2.token() + a3.token();
290  }
291  void operator() (Value *return_value,
292  const Value *param_values,
293  gpointer invocation_hint,
294  gpointer marshal_data) {
295  r.set (return_value, (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2)));
296  }
297 };
298 template<typename R, class T, typename A1, typename A2, typename A3>
299 Ret3Closure<R, T, A1, A2, A3>* Closure (T *t, R (T::*f) (A1, A2, A3)) {
300  return new Ret3Closure<R, T, A1, A2, A3> (t, f);
301 }
302 
303 /* Ret4Closure */
304 template<typename R, class T, typename A1, typename A2, typename A3, typename A4>
305 class Ret4Closure : public CxxClosure {
306  typedef R (T::*MCb) (A1, A2, A3, A4); /* Member Callback */
307  T *o;
308  MCb f;
309  Arg<R> r;
310  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4;
311 public:
312  Ret4Closure (T *t, MCb _f) : o(t), f(_f) {
313  sig_tokens = r.token() + "|" + a1.token() + a2.token() + a3.token() + a4.token();
314  }
315  void operator() (Value *return_value,
316  const Value *param_values,
317  gpointer invocation_hint,
318  gpointer marshal_data) {
319  r.set (return_value, (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3)));
320  }
321 };
322 template<typename R, class T, typename A1, typename A2, typename A3, typename A4>
323 Ret4Closure<R, T, A1, A2, A3, A4>* Closure (T *t, R (T::*f) (A1, A2, A3, A4)) {
324  return new Ret4Closure<R, T, A1, A2, A3, A4> (t, f);
325 }
326 
327 /* Ret5Closure */
328 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5>
329 class Ret5Closure : public CxxClosure {
330  typedef R (T::*MCb) (A1, A2, A3, A4, A5); /* Member Callback */
331  T *o;
332  MCb f;
333  Arg<R> r;
334  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5;
335 public:
336  Ret5Closure (T *t, MCb _f) : o(t), f(_f) {
337  sig_tokens = r.token() + "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token();
338  }
339  void operator() (Value *return_value,
340  const Value *param_values,
341  gpointer invocation_hint,
342  gpointer marshal_data) {
343  r.set (return_value, (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4)));
344  }
345 };
346 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5>
347 Ret5Closure<R, T, A1, A2, A3, A4, A5>* Closure (T *t, R (T::*f) (A1, A2, A3, A4, A5)) {
348  return new Ret5Closure<R, T, A1, A2, A3, A4, A5> (t, f);
349 }
350 
351 /* Ret6Closure */
352 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
353 class Ret6Closure : public CxxClosure {
354  typedef R (T::*MCb) (A1, A2, A3, A4, A5, A6); /* Member Callback */
355  T *o;
356  MCb f;
357  Arg<R> r;
358  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5; Arg<A6> a6;
359 public:
360  Ret6Closure (T *t, MCb _f) : o(t), f(_f) {
361  sig_tokens = r.token() + "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token() + a6.token();
362  }
363  void operator() (Value *return_value,
364  const Value *param_values,
365  gpointer invocation_hint,
366  gpointer marshal_data) {
367  r.set (return_value, (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4), a6.get (param_values + 5)));
368  }
369 };
370 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
371 Ret6Closure<R, T, A1, A2, A3, A4, A5, A6>* Closure (T *t, R (T::*f) (A1, A2, A3, A4, A5, A6)) {
373 }
374 
375 /* Ret7Closure */
376 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
377 class Ret7Closure : public CxxClosure {
378  typedef R (T::*MCb) (A1, A2, A3, A4, A5, A6, A7); /* Member Callback */
379  T *o;
380  MCb f;
381  Arg<R> r;
382  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5; Arg<A6> a6; Arg<A7> a7;
383 public:
384  Ret7Closure (T *t, MCb _f) : o(t), f(_f) {
385  sig_tokens = r.token() + "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token() + a6.token() + a7.token();
386  }
387  void operator() (Value *return_value,
388  const Value *param_values,
389  gpointer invocation_hint,
390  gpointer marshal_data) {
391  r.set (return_value, (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4), a6.get (param_values + 5), a7.get (param_values + 6)));
392  }
393 };
394 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
395 Ret7Closure<R, T, A1, A2, A3, A4, A5, A6, A7>* Closure (T *t, R (T::*f) (A1, A2, A3, A4, A5, A6, A7)) {
397 }
398 
399 /* Ret8Closure */
400 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
401 class Ret8Closure : public CxxClosure {
402  typedef R (T::*MCb) (A1, A2, A3, A4, A5, A6, A7, A8); /* Member Callback */
403  T *o;
404  MCb f;
405  Arg<R> r;
406  Arg<A1> a1; Arg<A2> a2; Arg<A3> a3; Arg<A4> a4; Arg<A5> a5; Arg<A6> a6; Arg<A7> a7; Arg<A8> a8;
407 public:
408  Ret8Closure (T *t, MCb _f) : o(t), f(_f) {
409  sig_tokens = r.token() + "|" + a1.token() + a2.token() + a3.token() + a4.token() + a5.token() + a6.token() + a7.token() + a8.token();
410  }
411  void operator() (Value *return_value,
412  const Value *param_values,
413  gpointer invocation_hint,
414  gpointer marshal_data) {
415  r.set (return_value, (o->*f) (a1.get (param_values + 0), a2.get (param_values + 1), a3.get (param_values + 2), a4.get (param_values + 3), a5.get (param_values + 4), a6.get (param_values + 5), a7.get (param_values + 6), a8.get (param_values + 7)));
416  }
417 };
418 template<typename R, class T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
419 Ret8Closure<R, T, A1, A2, A3, A4, A5, A6, A7, A8>* Closure (T *t, R (T::*f) (A1, A2, A3, A4, A5, A6, A7, A8)) {
421 }
Definition: bsegenclosures.hh:164
Definition: bsegenclosures.hh:401
Definition: bsegenclosures.hh:118
Definition: bsegenclosures.hh:233
Definition: bsegenclosures.hh:49
Definition: bsegenclosures.hh:281
Definition: bsegenclosures.hh:4
Definition: bsegenclosures.hh:329
Definition: bsegenclosures.hh:141
Definition: bsegenclosures.hh:377
Definition: bsegenclosures.hh:95
Definition: bsegenclosures.hh:210
Definition: bsegenclosures.hh:187
Definition: bsegenclosures.hh:257
Definition: bsegenclosures.hh:72
Definition: bsegenclosures.hh:305
Definition: bsegenclosures.hh:26
Definition: bsegenclosures.hh:353