Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
// -*- c++ -*-
2
/* This is a generated file, do not edit.  Generated from ../sigc++/macros/func_slot.h.m4 */
3
 
4
#ifndef SIGCXX_FUNC_SLOT_H
5
#define SIGCXX_FUNC_SLOT_H
6
#include 
7
 
8
/*
9
  SigC::slot() (function)
10
  -----------------------
11
  slot() can be applied to a function to form a Slot with a
12
  profile equivelent to the function.  To avoid warns be
13
  sure to pass the address of the function.
14
 
15
  Sample usage:
16
 
17
    void foo(int,int);
18
 
19
    Slot2 s=slot(&foo);
20
 
21
*/
22
 
23
#ifdef SIGC_CXX_NAMESPACES
24
namespace SigC
25
{
26
#endif
27
 
28
// From which we build specific Slots and a set of
29
// functions for creating a slot of this type
30
 
31
 
32
 
33
/****************************************************************
34
***** Function Slot 0
35
****************************************************************/
36
template 
37
struct FuncSlot0_
38
  {
39
#ifdef SIGC_CXX_PARTIAL_SPEC
40
   typedef R RType;
41
#else
42
   typedef typename Trait::type RType;
43
#endif
44
   typedef R     (*InFunc)();
45
   typedef RType (*Func)();
46
   typedef Slot0 SlotType;
47
 
48
   typedef CallDataFunc CallData;
49
 
50
   static RType callback(void* data)
51
     {
52
      return (((CallData*)data)->func)();
53
     }
54
 
55
   static SlotData* create(InFunc func)
56
     {
57
      SlotData* tmp=manage(new SlotData());
58
      CallData &data=reinterpret_cast(tmp->data_);
59
      data.callback=&callback;
60
      data.func=(Func)func;
61
      return tmp;
62
     }
63
  };
64
 
65
 
66
#ifndef SIGC_CXX_VOID_RETURN
67
#ifdef SIGC_CXX_PARTIAL_SPEC
68
template <>
69
struct FuncSlot0_
70
  {
71
   typedef void RType;
72
   typedef void     (*InFunc)();
73
   typedef RType (*Func)();
74
   typedef Slot0 SlotType;
75
 
76
   typedef CallDataFunc CallData;
77
 
78
   static RType callback(void* data)
79
     {
80
       (((CallData*)data)->func)();
81
     }
82
 
83
   static SlotData* create(InFunc func)
84
     {
85
      SlotData* tmp=manage(new SlotData());
86
      CallData &data=reinterpret_cast(tmp->data_);
87
      data.callback=&callback;
88
      data.func=(Func)func;
89
      return tmp;
90
     }
91
  };
92
 
93
#endif
94
#endif
95
 
96
template 
97
inline Slot0
98
  slot(R (*func)())
99
  {
100
   return FuncSlot0_::create(func);
101
  }
102
 
103
 
104
/****************************************************************
105
***** Function Slot 1
106
****************************************************************/
107
template 
108
struct FuncSlot1_
109
  {
110
#ifdef SIGC_CXX_PARTIAL_SPEC
111
   typedef R RType;
112
#else
113
   typedef typename Trait::type RType;
114
#endif
115
   typedef R     (*InFunc)(P1);
116
   typedef RType (*Func)(P1);
117
   typedef Slot1 SlotType;
118
 
119
   typedef CallDataFunc CallData;
120
 
121
   static RType callback(void* data,P1 p1)
122
     {
123
      return (((CallData*)data)->func)(p1);
124
     }
125
 
126
   static SlotData* create(InFunc func)
127
     {
128
      SlotData* tmp=manage(new SlotData());
129
      CallData &data=reinterpret_cast(tmp->data_);
130
      data.callback=&callback;
131
      data.func=(Func)func;
132
      return tmp;
133
     }
134
  };
135
 
136
 
137
#ifndef SIGC_CXX_VOID_RETURN
138
#ifdef SIGC_CXX_PARTIAL_SPEC
139
template 
140
struct FuncSlot1_
141
  {
142
   typedef void RType;
143
   typedef void     (*InFunc)(P1);
144
   typedef RType (*Func)(P1);
145
   typedef Slot1 SlotType;
146
 
147
   typedef CallDataFunc CallData;
148
 
149
   static RType callback(void* data,P1 p1)
150
     {
151
       (((CallData*)data)->func)(p1);
152
     }
153
 
154
   static SlotData* create(InFunc func)
155
     {
156
      SlotData* tmp=manage(new SlotData());
157
      CallData &data=reinterpret_cast(tmp->data_);
158
      data.callback=&callback;
159
      data.func=(Func)func;
160
      return tmp;
161
     }
162
  };
163
 
164
#endif
165
#endif
166
 
167
template 
168
inline Slot1
169
  slot(R (*func)(P1))
170
  {
171
   return FuncSlot1_::create(func);
172
  }
173
 
174
 
175
/****************************************************************
176
***** Function Slot 2
177
****************************************************************/
178
template 
179
struct FuncSlot2_
180
  {
181
#ifdef SIGC_CXX_PARTIAL_SPEC
182
   typedef R RType;
183
#else
184
   typedef typename Trait::type RType;
185
#endif
186
   typedef R     (*InFunc)(P1,P2);
187
   typedef RType (*Func)(P1,P2);
188
   typedef Slot2 SlotType;
189
 
190
   typedef CallDataFunc CallData;
191
 
192
   static RType callback(void* data,P1 p1,P2 p2)
193
     {
194
      return (((CallData*)data)->func)(p1,p2);
195
     }
196
 
197
   static SlotData* create(InFunc func)
198
     {
199
      SlotData* tmp=manage(new SlotData());
200
      CallData &data=reinterpret_cast(tmp->data_);
201
      data.callback=&callback;
202
      data.func=(Func)func;
203
      return tmp;
204
     }
205
  };
206
 
207
 
208
#ifndef SIGC_CXX_VOID_RETURN
209
#ifdef SIGC_CXX_PARTIAL_SPEC
210
template 
211
struct FuncSlot2_
212
  {
213
   typedef void RType;
214
   typedef void     (*InFunc)(P1,P2);
215
   typedef RType (*Func)(P1,P2);
216
   typedef Slot2 SlotType;
217
 
218
   typedef CallDataFunc CallData;
219
 
220
   static RType callback(void* data,P1 p1,P2 p2)
221
     {
222
       (((CallData*)data)->func)(p1,p2);
223
     }
224
 
225
   static SlotData* create(InFunc func)
226
     {
227
      SlotData* tmp=manage(new SlotData());
228
      CallData &data=reinterpret_cast(tmp->data_);
229
      data.callback=&callback;
230
      data.func=(Func)func;
231
      return tmp;
232
     }
233
  };
234
 
235
#endif
236
#endif
237
 
238
template 
239
inline Slot2
240
  slot(R (*func)(P1,P2))
241
  {
242
   return FuncSlot2_::create(func);
243
  }
244
 
245
 
246
/****************************************************************
247
***** Function Slot 3
248
****************************************************************/
249
template 
250
struct FuncSlot3_
251
  {
252
#ifdef SIGC_CXX_PARTIAL_SPEC
253
   typedef R RType;
254
#else
255
   typedef typename Trait::type RType;
256
#endif
257
   typedef R     (*InFunc)(P1,P2,P3);
258
   typedef RType (*Func)(P1,P2,P3);
259
   typedef Slot3 SlotType;
260
 
261
   typedef CallDataFunc CallData;
262
 
263
   static RType callback(void* data,P1 p1,P2 p2,P3 p3)
264
     {
265
      return (((CallData*)data)->func)(p1,p2,p3);
266
     }
267
 
268
   static SlotData* create(InFunc func)
269
     {
270
      SlotData* tmp=manage(new SlotData());
271
      CallData &data=reinterpret_cast(tmp->data_);
272
      data.callback=&callback;
273
      data.func=(Func)func;
274
      return tmp;
275
     }
276
  };
277
 
278
 
279
#ifndef SIGC_CXX_VOID_RETURN
280
#ifdef SIGC_CXX_PARTIAL_SPEC
281
template 
282
struct FuncSlot3_
283
  {
284
   typedef void RType;
285
   typedef void     (*InFunc)(P1,P2,P3);
286
   typedef RType (*Func)(P1,P2,P3);
287
   typedef Slot3 SlotType;
288
 
289
   typedef CallDataFunc CallData;
290
 
291
   static RType callback(void* data,P1 p1,P2 p2,P3 p3)
292
     {
293
       (((CallData*)data)->func)(p1,p2,p3);
294
     }
295
 
296
   static SlotData* create(InFunc func)
297
     {
298
      SlotData* tmp=manage(new SlotData());
299
      CallData &data=reinterpret_cast(tmp->data_);
300
      data.callback=&callback;
301
      data.func=(Func)func;
302
      return tmp;
303
     }
304
  };
305
 
306
#endif
307
#endif
308
 
309
template 
310
inline Slot3
311
  slot(R (*func)(P1,P2,P3))
312
  {
313
   return FuncSlot3_::create(func);
314
  }
315
 
316
 
317
/****************************************************************
318
***** Function Slot 4
319
****************************************************************/
320
template 
321
struct FuncSlot4_
322
  {
323
#ifdef SIGC_CXX_PARTIAL_SPEC
324
   typedef R RType;
325
#else
326
   typedef typename Trait::type RType;
327
#endif
328
   typedef R     (*InFunc)(P1,P2,P3,P4);
329
   typedef RType (*Func)(P1,P2,P3,P4);
330
   typedef Slot4 SlotType;
331
 
332
   typedef CallDataFunc CallData;
333
 
334
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4)
335
     {
336
      return (((CallData*)data)->func)(p1,p2,p3,p4);
337
     }
338
 
339
   static SlotData* create(InFunc func)
340
     {
341
      SlotData* tmp=manage(new SlotData());
342
      CallData &data=reinterpret_cast(tmp->data_);
343
      data.callback=&callback;
344
      data.func=(Func)func;
345
      return tmp;
346
     }
347
  };
348
 
349
 
350
#ifndef SIGC_CXX_VOID_RETURN
351
#ifdef SIGC_CXX_PARTIAL_SPEC
352
template 
353
struct FuncSlot4_
354
  {
355
   typedef void RType;
356
   typedef void     (*InFunc)(P1,P2,P3,P4);
357
   typedef RType (*Func)(P1,P2,P3,P4);
358
   typedef Slot4 SlotType;
359
 
360
   typedef CallDataFunc CallData;
361
 
362
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4)
363
     {
364
       (((CallData*)data)->func)(p1,p2,p3,p4);
365
     }
366
 
367
   static SlotData* create(InFunc func)
368
     {
369
      SlotData* tmp=manage(new SlotData());
370
      CallData &data=reinterpret_cast(tmp->data_);
371
      data.callback=&callback;
372
      data.func=(Func)func;
373
      return tmp;
374
     }
375
  };
376
 
377
#endif
378
#endif
379
 
380
template 
381
inline Slot4
382
  slot(R (*func)(P1,P2,P3,P4))
383
  {
384
   return FuncSlot4_::create(func);
385
  }
386
 
387
 
388
/****************************************************************
389
***** Function Slot 5
390
****************************************************************/
391
template 
392
struct FuncSlot5_
393
  {
394
#ifdef SIGC_CXX_PARTIAL_SPEC
395
   typedef R RType;
396
#else
397
   typedef typename Trait::type RType;
398
#endif
399
   typedef R     (*InFunc)(P1,P2,P3,P4,P5);
400
   typedef RType (*Func)(P1,P2,P3,P4,P5);
401
   typedef Slot5 SlotType;
402
 
403
   typedef CallDataFunc CallData;
404
 
405
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5)
406
     {
407
      return (((CallData*)data)->func)(p1,p2,p3,p4,p5);
408
     }
409
 
410
   static SlotData* create(InFunc func)
411
     {
412
      SlotData* tmp=manage(new SlotData());
413
      CallData &data=reinterpret_cast(tmp->data_);
414
      data.callback=&callback;
415
      data.func=(Func)func;
416
      return tmp;
417
     }
418
  };
419
 
420
 
421
#ifndef SIGC_CXX_VOID_RETURN
422
#ifdef SIGC_CXX_PARTIAL_SPEC
423
template 
424
struct FuncSlot5_
425
  {
426
   typedef void RType;
427
   typedef void     (*InFunc)(P1,P2,P3,P4,P5);
428
   typedef RType (*Func)(P1,P2,P3,P4,P5);
429
   typedef Slot5 SlotType;
430
 
431
   typedef CallDataFunc CallData;
432
 
433
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5)
434
     {
435
       (((CallData*)data)->func)(p1,p2,p3,p4,p5);
436
     }
437
 
438
   static SlotData* create(InFunc func)
439
     {
440
      SlotData* tmp=manage(new SlotData());
441
      CallData &data=reinterpret_cast(tmp->data_);
442
      data.callback=&callback;
443
      data.func=(Func)func;
444
      return tmp;
445
     }
446
  };
447
 
448
#endif
449
#endif
450
 
451
template 
452
inline Slot5
453
  slot(R (*func)(P1,P2,P3,P4,P5))
454
  {
455
   return FuncSlot5_::create(func);
456
  }
457
 
458
 
459
/****************************************************************
460
***** Function Slot 6
461
****************************************************************/
462
template 
463
struct FuncSlot6_
464
  {
465
#ifdef SIGC_CXX_PARTIAL_SPEC
466
   typedef R RType;
467
#else
468
   typedef typename Trait::type RType;
469
#endif
470
   typedef R     (*InFunc)(P1,P2,P3,P4,P5,P6);
471
   typedef RType (*Func)(P1,P2,P3,P4,P5,P6);
472
   typedef Slot6 SlotType;
473
 
474
   typedef CallDataFunc CallData;
475
 
476
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6)
477
     {
478
      return (((CallData*)data)->func)(p1,p2,p3,p4,p5,p6);
479
     }
480
 
481
   static SlotData* create(InFunc func)
482
     {
483
      SlotData* tmp=manage(new SlotData());
484
      CallData &data=reinterpret_cast(tmp->data_);
485
      data.callback=&callback;
486
      data.func=(Func)func;
487
      return tmp;
488
     }
489
  };
490
 
491
 
492
#ifndef SIGC_CXX_VOID_RETURN
493
#ifdef SIGC_CXX_PARTIAL_SPEC
494
template 
495
struct FuncSlot6_
496
  {
497
   typedef void RType;
498
   typedef void     (*InFunc)(P1,P2,P3,P4,P5,P6);
499
   typedef RType (*Func)(P1,P2,P3,P4,P5,P6);
500
   typedef Slot6 SlotType;
501
 
502
   typedef CallDataFunc CallData;
503
 
504
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6)
505
     {
506
       (((CallData*)data)->func)(p1,p2,p3,p4,p5,p6);
507
     }
508
 
509
   static SlotData* create(InFunc func)
510
     {
511
      SlotData* tmp=manage(new SlotData());
512
      CallData &data=reinterpret_cast(tmp->data_);
513
      data.callback=&callback;
514
      data.func=(Func)func;
515
      return tmp;
516
     }
517
  };
518
 
519
#endif
520
#endif
521
 
522
template 
523
inline Slot6
524
  slot(R (*func)(P1,P2,P3,P4,P5,P6))
525
  {
526
   return FuncSlot6_::create(func);
527
  }
528
 
529
 
530
/****************************************************************
531
***** Function Slot 7
532
****************************************************************/
533
template 
534
struct FuncSlot7_
535
  {
536
#ifdef SIGC_CXX_PARTIAL_SPEC
537
   typedef R RType;
538
#else
539
   typedef typename Trait::type RType;
540
#endif
541
   typedef R     (*InFunc)(P1,P2,P3,P4,P5,P6,P7);
542
   typedef RType (*Func)(P1,P2,P3,P4,P5,P6,P7);
543
   typedef Slot7 SlotType;
544
 
545
   typedef CallDataFunc CallData;
546
 
547
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6,P7 p7)
548
     {
549
      return (((CallData*)data)->func)(p1,p2,p3,p4,p5,p6,p7);
550
     }
551
 
552
   static SlotData* create(InFunc func)
553
     {
554
      SlotData* tmp=manage(new SlotData());
555
      CallData &data=reinterpret_cast(tmp->data_);
556
      data.callback=&callback;
557
      data.func=(Func)func;
558
      return tmp;
559
     }
560
  };
561
 
562
 
563
#ifndef SIGC_CXX_VOID_RETURN
564
#ifdef SIGC_CXX_PARTIAL_SPEC
565
template 
566
struct FuncSlot7_
567
  {
568
   typedef void RType;
569
   typedef void     (*InFunc)(P1,P2,P3,P4,P5,P6,P7);
570
   typedef RType (*Func)(P1,P2,P3,P4,P5,P6,P7);
571
   typedef Slot7 SlotType;
572
 
573
   typedef CallDataFunc CallData;
574
 
575
   static RType callback(void* data,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6,P7 p7)
576
     {
577
       (((CallData*)data)->func)(p1,p2,p3,p4,p5,p6,p7);
578
     }
579
 
580
   static SlotData* create(InFunc func)
581
     {
582
      SlotData* tmp=manage(new SlotData());
583
      CallData &data=reinterpret_cast(tmp->data_);
584
      data.callback=&callback;
585
      data.func=(Func)func;
586
      return tmp;
587
     }
588
  };
589
 
590
#endif
591
#endif
592
 
593
template 
594
inline Slot7
595
  slot(R (*func)(P1,P2,P3,P4,P5,P6,P7))
596
  {
597
   return FuncSlot7_::create(func);
598
  }
599
 
600
 
601
 
602
#ifdef SIGC_CXX_NAMESPACES
603
} // namespace
604
#endif
605
 
606
#endif // SIGCXX_FUNC_SLOT_H