-template<typename R>
-class Signal0 {
-public:
- Signal0 () {}
- typedef boost::signals2::signal<R()> SignalType;
-
- void connect (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal.connect (slot));
- }
-
- void connect (Connection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal.connect (slot);
- }
-
- typename SignalType::result_type operator()() {
- return _signal ();
- }
-
-private:
- SignalType _signal;
-};
-
-template<typename R, typename A>
-class Signal1 {
-public:
- Signal1 () {}
- typedef boost::signals2::signal<R(A)> SignalType;
-
- void connect (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal.connect (slot));
- }
-
- void connect (Connection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal.connect (slot);
- }
-
- typename SignalType::result_type operator()(A arg1) {
- return _signal (arg1);
- }
-
-private:
- SignalType _signal;
-};
-
-template<typename R, typename A1, typename A2>
-class Signal2 {
-public:
- Signal2 () {}
- typedef boost::signals2::signal<R(A1, A2)> SignalType;
-
- void connect (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal.connect (slot));
- }
-
- void connect (Connection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal.connect (slot);
- }
-
- typename SignalType::result_type operator()(A1 arg1, A2 arg2) {
- return _signal (arg1, arg2);
- }
-
-private:
- SignalType _signal;
-};
-
-template<typename R, typename A1, typename A2, typename A3>
-class Signal3 {
-public:
- Signal3 () {}
- typedef boost::signals2::signal<R(A1,A2,A3)> SignalType;
-
- void connect (ScopedConnectionList& clist,
- const typename SignalType::slot_function_type& slot) {
- clist.add_connection (_signal.connect (slot));
- }
-
- void connect (Connection& c,
- const typename SignalType::slot_function_type& slot) {
- c = _signal.connect (slot);
- }
-
- typename SignalType::result_type operator()(A1 arg1, A2 arg2, A3 arg3) {
- return _signal (arg1, arg2, arg3);
- }
-
-private:
- SignalType _signal;
-};