class Event1: public Event {} ;
class Event2: public Event {} ;
class Event3: public Event {} ;
class Event4: public Event {} ;
class A: public Subscriber {
public:
void event1(Event1*) {std::cerr << "1\n" ;}
void event2(Event2*) {std::cerr << "2\n" ;}
void event3(Event3*) {std::cerr << "3\n" ;}
void event4(Event4*) {std::cerr << "4\n" ;}
} ;
int main() {
EventRecorder recorder ;
recorder.igs_record(Event1) ;
recorder.igs_record(Event4) ;
recorder.igs_record(Event2) ;
recorder.igs_record(Event3) ;
Publisher* p = new Publisher ;
A* a = new A ;
igs_connect(p, a, igs_functor(a, A::event1)) ;
igs_connect(p, a, igs_functor(a, A::event2)) ;
igs_connect(p, a, igs_functor(a, A::event3)) ;
igs_connect(p, a, igs_functor(a, A::event4)) ;
recorder.play(p) ;
}
Will print:
1 4 2 3