|
507 |
class EventFunctionImpl1 : public EventImpl |
507 |
class EventFunctionImpl1 : public EventImpl |
508 |
{ |
508 |
{ |
509 |
public: |
509 |
public: |
510 |
typedef void (*F)(U1); |
510 |
EventFunctionImpl1 (void (*function)(U1), T1 a1) |
511 |
|
|
|
512 |
EventFunctionImpl1 (F function, T1 a1) |
513 |
: m_function (function), |
511 |
: m_function (function), |
514 |
m_a1 (a1) |
512 |
m_a1 (a1) |
515 |
{ |
513 |
{ |
|
523 |
{ |
521 |
{ |
524 |
(*m_function)(m_a1); |
522 |
(*m_function)(m_a1); |
525 |
} |
523 |
} |
526 |
F m_function; |
524 |
void (*m_function)(U1); |
527 |
typename TypeTraits<T1>::ReferencedType m_a1; |
525 |
typename TypeTraits<T1>::ReferencedType m_a1; |
528 |
} *ev = new EventFunctionImpl1 (f, a1); |
526 |
} *ev = new EventFunctionImpl1 (f, a1); |
529 |
return ev; |
527 |
return ev; |
530 |
} |
528 |
} |
531 |
|
529 |
|
532 |
template <typename U1, typename U2, typename T1, typename T2> |
530 |
template <typename U1, typename U2, typename T1, typename T2> |
533 |
EventImpl * MakeEvent (void (*f)(U1,U2), T1 a1, T2 a2) |
531 |
EventImpl * MakeEvent (void (*f)(U1, U2), T1 a1, T2 a2) |
534 |
{ |
532 |
{ |
535 |
// two arg version |
533 |
// two arg version |
536 |
class EventFunctionImpl2 : public EventImpl |
534 |
class EventFunctionImpl2 : public EventImpl |
537 |
{ |
535 |
{ |
538 |
public: |
536 |
public: |
539 |
typedef void (*F)(U1, U2); |
537 |
EventFunctionImpl2 (void (*function)(U1, U2), T1 a1, T2 a2) |
540 |
|
|
|
541 |
EventFunctionImpl2 (F function, T1 a1, T2 a2) |
542 |
: m_function (function), |
538 |
: m_function (function), |
543 |
m_a1 (a1), |
539 |
m_a1 (a1), |
544 |
m_a2 (a2) |
540 |
m_a2 (a2) |
|
553 |
{ |
549 |
{ |
554 |
(*m_function)(m_a1, m_a2); |
550 |
(*m_function)(m_a1, m_a2); |
555 |
} |
551 |
} |
556 |
F m_function; |
552 |
void (*m_function)(U1, U2); |
557 |
typename TypeTraits<T1>::ReferencedType m_a1; |
553 |
typename TypeTraits<T1>::ReferencedType m_a1; |
558 |
typename TypeTraits<T2>::ReferencedType m_a2; |
554 |
typename TypeTraits<T2>::ReferencedType m_a2; |
559 |
} *ev = new EventFunctionImpl2 (f, a1, a2); |
555 |
} *ev = new EventFunctionImpl2 (f, a1, a2); |
|
562 |
|
558 |
|
563 |
template <typename U1, typename U2, typename U3, |
559 |
template <typename U1, typename U2, typename U3, |
564 |
typename T1, typename T2, typename T3> |
560 |
typename T1, typename T2, typename T3> |
565 |
EventImpl * MakeEvent (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3) |
561 |
EventImpl * MakeEvent (void (*f)(U1, U2, U3), T1 a1, T2 a2, T3 a3) |
566 |
{ |
562 |
{ |
567 |
// three arg version |
563 |
// three arg version |
568 |
class EventFunctionImpl3 : public EventImpl |
564 |
class EventFunctionImpl3 : public EventImpl |
569 |
{ |
565 |
{ |
570 |
public: |
566 |
public: |
571 |
typedef void (*F)(U1, U2, U3); |
567 |
EventFunctionImpl3 (void (*function)(U1, U2, U3), T1 a1, T2 a2, T3 a3) |
572 |
|
|
|
573 |
EventFunctionImpl3 (F function, T1 a1, T2 a2, T3 a3) |
574 |
: m_function (function), |
568 |
: m_function (function), |
575 |
m_a1 (a1), |
569 |
m_a1 (a1), |
576 |
m_a2 (a2), |
570 |
m_a2 (a2), |
|
586 |
{ |
580 |
{ |
587 |
(*m_function)(m_a1, m_a2, m_a3); |
581 |
(*m_function)(m_a1, m_a2, m_a3); |
588 |
} |
582 |
} |
589 |
F m_function; |
583 |
void (*m_function)(U1, U2, U3); |
590 |
typename TypeTraits<T1>::ReferencedType m_a1; |
584 |
typename TypeTraits<T1>::ReferencedType m_a1; |
591 |
typename TypeTraits<T2>::ReferencedType m_a2; |
585 |
typename TypeTraits<T2>::ReferencedType m_a2; |
592 |
typename TypeTraits<T3>::ReferencedType m_a3; |
586 |
typename TypeTraits<T3>::ReferencedType m_a3; |
|
596 |
|
590 |
|
597 |
template <typename U1, typename U2, typename U3, typename U4, |
591 |
template <typename U1, typename U2, typename U3, typename U4, |
598 |
typename T1, typename T2, typename T3, typename T4> |
592 |
typename T1, typename T2, typename T3, typename T4> |
599 |
EventImpl * MakeEvent (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4) |
593 |
EventImpl * MakeEvent (void (*f)(U1, U2, U3, U4), T1 a1, T2 a2, T3 a3, T4 a4) |
600 |
{ |
594 |
{ |
601 |
// four arg version |
595 |
// four arg version |
602 |
class EventFunctionImpl4 : public EventImpl |
596 |
class EventFunctionImpl4 : public EventImpl |
603 |
{ |
597 |
{ |
604 |
public: |
598 |
public: |
605 |
typedef void (*F)(U1, U2, U3, U4); |
599 |
EventFunctionImpl4 (void (*function)(U1, U2, U3, U4), T1 a1, T2 a2, T3 a3, T4 a4) |
606 |
|
|
|
607 |
EventFunctionImpl4 (F function, T1 a1, T2 a2, T3 a3, T4 a4) |
608 |
: m_function (function), |
600 |
: m_function (function), |
609 |
m_a1 (a1), |
601 |
m_a1 (a1), |
610 |
m_a2 (a2), |
602 |
m_a2 (a2), |
|
621 |
{ |
613 |
{ |
622 |
(*m_function)(m_a1, m_a2, m_a3, m_a4); |
614 |
(*m_function)(m_a1, m_a2, m_a3, m_a4); |
623 |
} |
615 |
} |
624 |
F m_function; |
616 |
void (*m_function)(U1, U2, U3, U4); |
625 |
typename TypeTraits<T1>::ReferencedType m_a1; |
617 |
typename TypeTraits<T1>::ReferencedType m_a1; |
626 |
typename TypeTraits<T2>::ReferencedType m_a2; |
618 |
typename TypeTraits<T2>::ReferencedType m_a2; |
627 |
typename TypeTraits<T3>::ReferencedType m_a3; |
619 |
typename TypeTraits<T3>::ReferencedType m_a3; |
|
632 |
|
624 |
|
633 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
625 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
634 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
626 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
635 |
EventImpl * MakeEvent (void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) |
627 |
EventImpl * MakeEvent (void (*f)(U1, U2, U3, U4, U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) |
636 |
{ |
628 |
{ |
637 |
// five arg version |
629 |
// five arg version |
638 |
class EventFunctionImpl5 : public EventImpl |
630 |
class EventFunctionImpl5 : public EventImpl |
639 |
{ |
631 |
{ |
640 |
public: |
632 |
public: |
641 |
typedef void (*F)(U1,U2,U3,U4,U5); |
633 |
EventFunctionImpl5 (void (*function)(U1, U2, U3, U4, U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) |
642 |
|
|
|
643 |
EventFunctionImpl5 (F function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) |
644 |
: m_function (function), |
634 |
: m_function (function), |
645 |
m_a1 (a1), |
635 |
m_a1 (a1), |
646 |
m_a2 (a2), |
636 |
m_a2 (a2), |
|
658 |
{ |
648 |
{ |
659 |
(*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5); |
649 |
(*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5); |
660 |
} |
650 |
} |
661 |
F m_function; |
651 |
void (*m_function)(U1, U2, U3, U4, U5); |
662 |
typename TypeTraits<T1>::ReferencedType m_a1; |
652 |
typename TypeTraits<T1>::ReferencedType m_a1; |
663 |
typename TypeTraits<T2>::ReferencedType m_a2; |
653 |
typename TypeTraits<T2>::ReferencedType m_a2; |
664 |
typename TypeTraits<T3>::ReferencedType m_a3; |
654 |
typename TypeTraits<T3>::ReferencedType m_a3; |