summaryrefslogtreecommitdiff
path: root/pregen
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2012-12-20 00:17:27 +0000
committerMike Buland <eichlan@xagasoft.com>2012-12-20 00:17:27 +0000
commit6af2989d3abbe9ff64631df33f9f9e135274d90c (patch)
tree99a9d68a12f66820037b02566667ab610cc46a14 /pregen
parent8ba750c2d52b9db90c8274020c6053a32441ed43 (diff)
downloadlibbu++-6af2989d3abbe9ff64631df33f9f9e135274d90c.tar.gz
libbu++-6af2989d3abbe9ff64631df33f9f9e135274d90c.tar.bz2
libbu++-6af2989d3abbe9ff64631df33f9f9e135274d90c.tar.xz
libbu++-6af2989d3abbe9ff64631df33f9f9e135274d90c.zip
May as well update the pregen code as well.
Diffstat (limited to 'pregen')
-rw-r--r--pregen/signals.h518
1 files changed, 518 insertions, 0 deletions
diff --git a/pregen/signals.h b/pregen/signals.h
index 27364da..e8374e3 100644
--- a/pregen/signals.h
+++ b/pregen/signals.h
@@ -10,6 +10,7 @@
10 10
11#include "bu/util.h" 11#include "bu/util.h"
12#include "bu/exceptionbase.h" 12#include "bu/exceptionbase.h"
13#include "bu/list.h"
13 14
14namespace Bu 15namespace Bu
15{ 16{
@@ -121,6 +122,53 @@ namespace Bu
121 new __Slot0F<ret>( pFnc ) 122 new __Slot0F<ret>( pFnc )
122 ); 123 );
123 } 124 }
125
126 template<typename ret>
127 class SignalList0 : public Bu::List<Bu::Signal0<ret> >
128 {
129 typedef Bu::List<Bu::Signal0<ret> > MyType;
130 public:
131 SignalList0()
132 {
133 }
134
135 using MyType::iterator;
136 using MyType::const_iterator;
137
138 ret operator()( )
139 {
140 typename MyType::iterator i, n;
141 for(i = MyType::begin(); i; i=n)
142 {
143 n = i;
144 n++;
145 if( n )
146 (*i)( );
147 else
148 return (*i)( );
149 }
150 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
151 }
152 };
153
154 template<>
155 class SignalList0<void> : public Bu::List<Bu::Signal0<void> >
156 {
157 typedef Bu::List<Bu::Signal0<void> > MyType;
158 public:
159 SignalList0()
160 {
161 }
162
163 using MyType::iterator;
164 using MyType::const_iterator;
165
166 void operator()( )
167 {
168 for( typename MyType::iterator i = MyType::begin(); i; i++ )
169 (*i)( );
170 }
171 };
124#endif // BU_SIGNAL_PARAM_COUNT_0 172#endif // BU_SIGNAL_PARAM_COUNT_0
125 173
126#ifndef BU_SIGNAL_PARAM_COUNT_1 174#ifndef BU_SIGNAL_PARAM_COUNT_1
@@ -229,6 +277,53 @@ namespace Bu
229 new __Slot1F<ret, p1t>( pFnc ) 277 new __Slot1F<ret, p1t>( pFnc )
230 ); 278 );
231 } 279 }
280
281 template<typename ret, typename p1t>
282 class SignalList1 : public Bu::List<Bu::Signal1<ret, p1t> >
283 {
284 typedef Bu::List<Bu::Signal1<ret, p1t> > MyType;
285 public:
286 SignalList1()
287 {
288 }
289
290 using MyType::iterator;
291 using MyType::const_iterator;
292
293 ret operator()( p1t p1 )
294 {
295 typename MyType::iterator i, n;
296 for(i = MyType::begin(); i; i=n)
297 {
298 n = i;
299 n++;
300 if( n )
301 (*i)( p1 );
302 else
303 return (*i)( p1 );
304 }
305 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
306 }
307 };
308
309 template<typename p1t>
310 class SignalList1<void, p1t> : public Bu::List<Bu::Signal1<void, p1t> >
311 {
312 typedef Bu::List<Bu::Signal1<void, p1t> > MyType;
313 public:
314 SignalList1()
315 {
316 }
317
318 using MyType::iterator;
319 using MyType::const_iterator;
320
321 void operator()( p1t p1 )
322 {
323 for( typename MyType::iterator i = MyType::begin(); i; i++ )
324 (*i)( p1 );
325 }
326 };
232#endif // BU_SIGNAL_PARAM_COUNT_1 327#endif // BU_SIGNAL_PARAM_COUNT_1
233 328
234#ifndef BU_SIGNAL_PARAM_COUNT_2 329#ifndef BU_SIGNAL_PARAM_COUNT_2
@@ -337,6 +432,53 @@ namespace Bu
337 new __Slot2F<ret, p1t, p2t>( pFnc ) 432 new __Slot2F<ret, p1t, p2t>( pFnc )
338 ); 433 );
339 } 434 }
435
436 template<typename ret, typename p1t, typename p2t>
437 class SignalList2 : public Bu::List<Bu::Signal2<ret, p1t, p2t> >
438 {
439 typedef Bu::List<Bu::Signal2<ret, p1t, p2t> > MyType;
440 public:
441 SignalList2()
442 {
443 }
444
445 using MyType::iterator;
446 using MyType::const_iterator;
447
448 ret operator()( p1t p1, p2t p2 )
449 {
450 typename MyType::iterator i, n;
451 for(i = MyType::begin(); i; i=n)
452 {
453 n = i;
454 n++;
455 if( n )
456 (*i)( p1, p2 );
457 else
458 return (*i)( p1, p2 );
459 }
460 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
461 }
462 };
463
464 template<typename p1t, typename p2t>
465 class SignalList2<void, p1t, p2t> : public Bu::List<Bu::Signal2<void, p1t, p2t> >
466 {
467 typedef Bu::List<Bu::Signal2<void, p1t, p2t> > MyType;
468 public:
469 SignalList2()
470 {
471 }
472
473 using MyType::iterator;
474 using MyType::const_iterator;
475
476 void operator()( p1t p1, p2t p2 )
477 {
478 for( typename MyType::iterator i = MyType::begin(); i; i++ )
479 (*i)( p1, p2 );
480 }
481 };
340#endif // BU_SIGNAL_PARAM_COUNT_2 482#endif // BU_SIGNAL_PARAM_COUNT_2
341 483
342#ifndef BU_SIGNAL_PARAM_COUNT_3 484#ifndef BU_SIGNAL_PARAM_COUNT_3
@@ -445,6 +587,53 @@ namespace Bu
445 new __Slot3F<ret, p1t, p2t, p3t>( pFnc ) 587 new __Slot3F<ret, p1t, p2t, p3t>( pFnc )
446 ); 588 );
447 } 589 }
590
591 template<typename ret, typename p1t, typename p2t, typename p3t>
592 class SignalList3 : public Bu::List<Bu::Signal3<ret, p1t, p2t, p3t> >
593 {
594 typedef Bu::List<Bu::Signal3<ret, p1t, p2t, p3t> > MyType;
595 public:
596 SignalList3()
597 {
598 }
599
600 using MyType::iterator;
601 using MyType::const_iterator;
602
603 ret operator()( p1t p1, p2t p2, p3t p3 )
604 {
605 typename MyType::iterator i, n;
606 for(i = MyType::begin(); i; i=n)
607 {
608 n = i;
609 n++;
610 if( n )
611 (*i)( p1, p2, p3 );
612 else
613 return (*i)( p1, p2, p3 );
614 }
615 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
616 }
617 };
618
619 template<typename p1t, typename p2t, typename p3t>
620 class SignalList3<void, p1t, p2t, p3t> : public Bu::List<Bu::Signal3<void, p1t, p2t, p3t> >
621 {
622 typedef Bu::List<Bu::Signal3<void, p1t, p2t, p3t> > MyType;
623 public:
624 SignalList3()
625 {
626 }
627
628 using MyType::iterator;
629 using MyType::const_iterator;
630
631 void operator()( p1t p1, p2t p2, p3t p3 )
632 {
633 for( typename MyType::iterator i = MyType::begin(); i; i++ )
634 (*i)( p1, p2, p3 );
635 }
636 };
448#endif // BU_SIGNAL_PARAM_COUNT_3 637#endif // BU_SIGNAL_PARAM_COUNT_3
449 638
450#ifndef BU_SIGNAL_PARAM_COUNT_4 639#ifndef BU_SIGNAL_PARAM_COUNT_4
@@ -553,6 +742,53 @@ namespace Bu
553 new __Slot4F<ret, p1t, p2t, p3t, p4t>( pFnc ) 742 new __Slot4F<ret, p1t, p2t, p3t, p4t>( pFnc )
554 ); 743 );
555 } 744 }
745
746 template<typename ret, typename p1t, typename p2t, typename p3t, typename p4t>
747 class SignalList4 : public Bu::List<Bu::Signal4<ret, p1t, p2t, p3t, p4t> >
748 {
749 typedef Bu::List<Bu::Signal4<ret, p1t, p2t, p3t, p4t> > MyType;
750 public:
751 SignalList4()
752 {
753 }
754
755 using MyType::iterator;
756 using MyType::const_iterator;
757
758 ret operator()( p1t p1, p2t p2, p3t p3, p4t p4 )
759 {
760 typename MyType::iterator i, n;
761 for(i = MyType::begin(); i; i=n)
762 {
763 n = i;
764 n++;
765 if( n )
766 (*i)( p1, p2, p3, p4 );
767 else
768 return (*i)( p1, p2, p3, p4 );
769 }
770 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
771 }
772 };
773
774 template<typename p1t, typename p2t, typename p3t, typename p4t>
775 class SignalList4<void, p1t, p2t, p3t, p4t> : public Bu::List<Bu::Signal4<void, p1t, p2t, p3t, p4t> >
776 {
777 typedef Bu::List<Bu::Signal4<void, p1t, p2t, p3t, p4t> > MyType;
778 public:
779 SignalList4()
780 {
781 }
782
783 using MyType::iterator;
784 using MyType::const_iterator;
785
786 void operator()( p1t p1, p2t p2, p3t p3, p4t p4 )
787 {
788 for( typename MyType::iterator i = MyType::begin(); i; i++ )
789 (*i)( p1, p2, p3, p4 );
790 }
791 };
556#endif // BU_SIGNAL_PARAM_COUNT_4 792#endif // BU_SIGNAL_PARAM_COUNT_4
557 793
558#ifndef BU_SIGNAL_PARAM_COUNT_5 794#ifndef BU_SIGNAL_PARAM_COUNT_5
@@ -661,6 +897,53 @@ namespace Bu
661 new __Slot5F<ret, p1t, p2t, p3t, p4t, p5t>( pFnc ) 897 new __Slot5F<ret, p1t, p2t, p3t, p4t, p5t>( pFnc )
662 ); 898 );
663 } 899 }
900
901 template<typename ret, typename p1t, typename p2t, typename p3t, typename p4t, typename p5t>
902 class SignalList5 : public Bu::List<Bu::Signal5<ret, p1t, p2t, p3t, p4t, p5t> >
903 {
904 typedef Bu::List<Bu::Signal5<ret, p1t, p2t, p3t, p4t, p5t> > MyType;
905 public:
906 SignalList5()
907 {
908 }
909
910 using MyType::iterator;
911 using MyType::const_iterator;
912
913 ret operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5 )
914 {
915 typename MyType::iterator i, n;
916 for(i = MyType::begin(); i; i=n)
917 {
918 n = i;
919 n++;
920 if( n )
921 (*i)( p1, p2, p3, p4, p5 );
922 else
923 return (*i)( p1, p2, p3, p4, p5 );
924 }
925 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
926 }
927 };
928
929 template<typename p1t, typename p2t, typename p3t, typename p4t, typename p5t>
930 class SignalList5<void, p1t, p2t, p3t, p4t, p5t> : public Bu::List<Bu::Signal5<void, p1t, p2t, p3t, p4t, p5t> >
931 {
932 typedef Bu::List<Bu::Signal5<void, p1t, p2t, p3t, p4t, p5t> > MyType;
933 public:
934 SignalList5()
935 {
936 }
937
938 using MyType::iterator;
939 using MyType::const_iterator;
940
941 void operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5 )
942 {
943 for( typename MyType::iterator i = MyType::begin(); i; i++ )
944 (*i)( p1, p2, p3, p4, p5 );
945 }
946 };
664#endif // BU_SIGNAL_PARAM_COUNT_5 947#endif // BU_SIGNAL_PARAM_COUNT_5
665 948
666#ifndef BU_SIGNAL_PARAM_COUNT_6 949#ifndef BU_SIGNAL_PARAM_COUNT_6
@@ -769,6 +1052,53 @@ namespace Bu
769 new __Slot6F<ret, p1t, p2t, p3t, p4t, p5t, p6t>( pFnc ) 1052 new __Slot6F<ret, p1t, p2t, p3t, p4t, p5t, p6t>( pFnc )
770 ); 1053 );
771 } 1054 }
1055
1056 template<typename ret, typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t>
1057 class SignalList6 : public Bu::List<Bu::Signal6<ret, p1t, p2t, p3t, p4t, p5t, p6t> >
1058 {
1059 typedef Bu::List<Bu::Signal6<ret, p1t, p2t, p3t, p4t, p5t, p6t> > MyType;
1060 public:
1061 SignalList6()
1062 {
1063 }
1064
1065 using MyType::iterator;
1066 using MyType::const_iterator;
1067
1068 ret operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6 )
1069 {
1070 typename MyType::iterator i, n;
1071 for(i = MyType::begin(); i; i=n)
1072 {
1073 n = i;
1074 n++;
1075 if( n )
1076 (*i)( p1, p2, p3, p4, p5, p6 );
1077 else
1078 return (*i)( p1, p2, p3, p4, p5, p6 );
1079 }
1080 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
1081 }
1082 };
1083
1084 template<typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t>
1085 class SignalList6<void, p1t, p2t, p3t, p4t, p5t, p6t> : public Bu::List<Bu::Signal6<void, p1t, p2t, p3t, p4t, p5t, p6t> >
1086 {
1087 typedef Bu::List<Bu::Signal6<void, p1t, p2t, p3t, p4t, p5t, p6t> > MyType;
1088 public:
1089 SignalList6()
1090 {
1091 }
1092
1093 using MyType::iterator;
1094 using MyType::const_iterator;
1095
1096 void operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6 )
1097 {
1098 for( typename MyType::iterator i = MyType::begin(); i; i++ )
1099 (*i)( p1, p2, p3, p4, p5, p6 );
1100 }
1101 };
772#endif // BU_SIGNAL_PARAM_COUNT_6 1102#endif // BU_SIGNAL_PARAM_COUNT_6
773 1103
774#ifndef BU_SIGNAL_PARAM_COUNT_7 1104#ifndef BU_SIGNAL_PARAM_COUNT_7
@@ -877,6 +1207,53 @@ namespace Bu
877 new __Slot7F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t>( pFnc ) 1207 new __Slot7F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t>( pFnc )
878 ); 1208 );
879 } 1209 }
1210
1211 template<typename ret, typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t>
1212 class SignalList7 : public Bu::List<Bu::Signal7<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t> >
1213 {
1214 typedef Bu::List<Bu::Signal7<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t> > MyType;
1215 public:
1216 SignalList7()
1217 {
1218 }
1219
1220 using MyType::iterator;
1221 using MyType::const_iterator;
1222
1223 ret operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7 )
1224 {
1225 typename MyType::iterator i, n;
1226 for(i = MyType::begin(); i; i=n)
1227 {
1228 n = i;
1229 n++;
1230 if( n )
1231 (*i)( p1, p2, p3, p4, p5, p6, p7 );
1232 else
1233 return (*i)( p1, p2, p3, p4, p5, p6, p7 );
1234 }
1235 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
1236 }
1237 };
1238
1239 template<typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t>
1240 class SignalList7<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t> : public Bu::List<Bu::Signal7<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t> >
1241 {
1242 typedef Bu::List<Bu::Signal7<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t> > MyType;
1243 public:
1244 SignalList7()
1245 {
1246 }
1247
1248 using MyType::iterator;
1249 using MyType::const_iterator;
1250
1251 void operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7 )
1252 {
1253 for( typename MyType::iterator i = MyType::begin(); i; i++ )
1254 (*i)( p1, p2, p3, p4, p5, p6, p7 );
1255 }
1256 };
880#endif // BU_SIGNAL_PARAM_COUNT_7 1257#endif // BU_SIGNAL_PARAM_COUNT_7
881 1258
882#ifndef BU_SIGNAL_PARAM_COUNT_8 1259#ifndef BU_SIGNAL_PARAM_COUNT_8
@@ -985,6 +1362,53 @@ namespace Bu
985 new __Slot8F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t>( pFnc ) 1362 new __Slot8F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t>( pFnc )
986 ); 1363 );
987 } 1364 }
1365
1366 template<typename ret, typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t, typename p8t>
1367 class SignalList8 : public Bu::List<Bu::Signal8<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t> >
1368 {
1369 typedef Bu::List<Bu::Signal8<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t> > MyType;
1370 public:
1371 SignalList8()
1372 {
1373 }
1374
1375 using MyType::iterator;
1376 using MyType::const_iterator;
1377
1378 ret operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7, p8t p8 )
1379 {
1380 typename MyType::iterator i, n;
1381 for(i = MyType::begin(); i; i=n)
1382 {
1383 n = i;
1384 n++;
1385 if( n )
1386 (*i)( p1, p2, p3, p4, p5, p6, p7, p8 );
1387 else
1388 return (*i)( p1, p2, p3, p4, p5, p6, p7, p8 );
1389 }
1390 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
1391 }
1392 };
1393
1394 template<typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t, typename p8t>
1395 class SignalList8<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t> : public Bu::List<Bu::Signal8<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t> >
1396 {
1397 typedef Bu::List<Bu::Signal8<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t> > MyType;
1398 public:
1399 SignalList8()
1400 {
1401 }
1402
1403 using MyType::iterator;
1404 using MyType::const_iterator;
1405
1406 void operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7, p8t p8 )
1407 {
1408 for( typename MyType::iterator i = MyType::begin(); i; i++ )
1409 (*i)( p1, p2, p3, p4, p5, p6, p7, p8 );
1410 }
1411 };
988#endif // BU_SIGNAL_PARAM_COUNT_8 1412#endif // BU_SIGNAL_PARAM_COUNT_8
989 1413
990#ifndef BU_SIGNAL_PARAM_COUNT_9 1414#ifndef BU_SIGNAL_PARAM_COUNT_9
@@ -1093,6 +1517,53 @@ namespace Bu
1093 new __Slot9F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t>( pFnc ) 1517 new __Slot9F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t>( pFnc )
1094 ); 1518 );
1095 } 1519 }
1520
1521 template<typename ret, typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t, typename p8t, typename p9t>
1522 class SignalList9 : public Bu::List<Bu::Signal9<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t> >
1523 {
1524 typedef Bu::List<Bu::Signal9<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t> > MyType;
1525 public:
1526 SignalList9()
1527 {
1528 }
1529
1530 using MyType::iterator;
1531 using MyType::const_iterator;
1532
1533 ret operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7, p8t p8, p9t p9 )
1534 {
1535 typename MyType::iterator i, n;
1536 for(i = MyType::begin(); i; i=n)
1537 {
1538 n = i;
1539 n++;
1540 if( n )
1541 (*i)( p1, p2, p3, p4, p5, p6, p7, p8, p9 );
1542 else
1543 return (*i)( p1, p2, p3, p4, p5, p6, p7, p8, p9 );
1544 }
1545 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
1546 }
1547 };
1548
1549 template<typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t, typename p8t, typename p9t>
1550 class SignalList9<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t> : public Bu::List<Bu::Signal9<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t> >
1551 {
1552 typedef Bu::List<Bu::Signal9<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t> > MyType;
1553 public:
1554 SignalList9()
1555 {
1556 }
1557
1558 using MyType::iterator;
1559 using MyType::const_iterator;
1560
1561 void operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7, p8t p8, p9t p9 )
1562 {
1563 for( typename MyType::iterator i = MyType::begin(); i; i++ )
1564 (*i)( p1, p2, p3, p4, p5, p6, p7, p8, p9 );
1565 }
1566 };
1096#endif // BU_SIGNAL_PARAM_COUNT_9 1567#endif // BU_SIGNAL_PARAM_COUNT_9
1097 1568
1098#ifndef BU_SIGNAL_PARAM_COUNT_10 1569#ifndef BU_SIGNAL_PARAM_COUNT_10
@@ -1201,6 +1672,53 @@ namespace Bu
1201 new __Slot10F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t, p10t>( pFnc ) 1672 new __Slot10F<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t, p10t>( pFnc )
1202 ); 1673 );
1203 } 1674 }
1675
1676 template<typename ret, typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t, typename p8t, typename p9t, typename p10t>
1677 class SignalList10 : public Bu::List<Bu::Signal10<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t, p10t> >
1678 {
1679 typedef Bu::List<Bu::Signal10<ret, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t, p10t> > MyType;
1680 public:
1681 SignalList10()
1682 {
1683 }
1684
1685 using MyType::iterator;
1686 using MyType::const_iterator;
1687
1688 ret operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7, p8t p8, p9t p9, p10t p10 )
1689 {
1690 typename MyType::iterator i, n;
1691 for(i = MyType::begin(); i; i=n)
1692 {
1693 n = i;
1694 n++;
1695 if( n )
1696 (*i)( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 );
1697 else
1698 return (*i)( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 );
1699 }
1700 throw Bu::ExceptionBase("Empty SignalList with non-void return value called.");
1701 }
1702 };
1703
1704 template<typename p1t, typename p2t, typename p3t, typename p4t, typename p5t, typename p6t, typename p7t, typename p8t, typename p9t, typename p10t>
1705 class SignalList10<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t, p10t> : public Bu::List<Bu::Signal10<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t, p10t> >
1706 {
1707 typedef Bu::List<Bu::Signal10<void, p1t, p2t, p3t, p4t, p5t, p6t, p7t, p8t, p9t, p10t> > MyType;
1708 public:
1709 SignalList10()
1710 {
1711 }
1712
1713 using MyType::iterator;
1714 using MyType::const_iterator;
1715
1716 void operator()( p1t p1, p2t p2, p3t p3, p4t p4, p5t p5, p6t p6, p7t p7, p8t p8, p9t p9, p10t p10 )
1717 {
1718 for( typename MyType::iterator i = MyType::begin(); i; i++ )
1719 (*i)( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 );
1720 }
1721 };
1204#endif // BU_SIGNAL_PARAM_COUNT_10 1722#endif // BU_SIGNAL_PARAM_COUNT_10
1205 1723
1206}; 1724};