View | Details | Raw Unified | Return to bug 2181
Collapse All | Expand All

(-)a/src/core/model/make-event.h (-24 / +14 lines)
 Lines 507-515    Link Here 
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
    {
 Lines 523-544    Link Here 
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)
 Lines 553-559    Link Here 
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);
 Lines 562-576    Link Here 
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),
 Lines 586-592    Link Here 
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;
 Lines 596-610    Link Here 
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),
 Lines 621-627    Link Here 
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;
 Lines 632-646    Link Here 
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),
 Lines 658-664    Link Here 
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;

Return to bug 2181