pdf::Signal< R, A1, A2, A3, A4, UNUSABLE > Class Template Reference

Signal supporting four parameters. More...

#include <pdf_observer.h>

Collaboration diagram for pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >:
Collaboration graph
[legend]

Public Member Functions

 Signal ()
 ~Signal ()
template<class T >
void add_slot (T *p, R(T::*func)(A1, A2, A3, A4))
 Add receiver to receive pre-defined signals.
template<class T >
bool remove_slot (T *p, R(T::*func)(A1, A2, A3, A4))
 Remove receiver from the receivers list.
void broadcast (A1 arg1, A2 arg2, A3 arg3, A4 arg4)
 Notify all receivers.
size_t count ()

Detailed Description

template<class R, class A1, class A2, class A3, class A4>
class pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >

Signal supporting four parameters.

Definition at line 480 of file pdf_observer.h.


Constructor & Destructor Documentation

template<class R , class A1 , class A2 , class A3 , class A4 >
pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >::Signal (  )  [inline]

Definition at line 484 of file pdf_observer.h.

00484 {}

template<class R , class A1 , class A2 , class A3 , class A4 >
pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >::~Signal (  )  [inline]

Definition at line 485 of file pdf_observer.h.

00485 {ReceiversOperations<IFunctorPtr>::clear(receivers);}


Member Function Documentation

template<class R , class A1 , class A2 , class A3 , class A4 >
template<class T >
void pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >::add_slot ( T *  p,
R(T::*)(A1, A2, A3, A4)  func 
) [inline]

Add receiver to receive pre-defined signals.

Definition at line 490 of file pdf_observer.h.

00491         {
00492             IFunctorPtr func_ptr = new Functor<T, R, A1, A2, A3, A4>(p, func);
00493             receivers.push_back(func_ptr);
00494         }

template<class R , class A1 , class A2 , class A3 , class A4 >
void pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >::broadcast ( A1  arg1,
A2  arg2,
A3  arg3,
A4  arg4 
) [inline]

Notify all receivers.

Definition at line 506 of file pdf_observer.h.

00507         {
00508             ReceiversIter begin, end, it;
00509             begin = receivers.begin();
00510             end   = receivers.end();
00511             IFunctorPtr ptr = 0;
00512             for(it= begin; it != end; ++it)
00513             {
00514                 ptr = *it;
00515                 (*ptr)(arg1, arg2, arg3, arg4);
00516             }
00517         }

template<class R , class A1 , class A2 , class A3 , class A4 >
size_t pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >::count (  )  [inline]

Definition at line 519 of file pdf_observer.h.

00519 {return receivers.size();}

template<class R , class A1 , class A2 , class A3 , class A4 >
template<class T >
bool pdf::Signal< R, A1, A2, A3, A4, UNUSABLE >::remove_slot ( T *  p,
R(T::*)(A1, A2, A3, A4)  func 
) [inline]

Remove receiver from the receivers list.

Definition at line 498 of file pdf_observer.h.

00499         {
00500             Functor<T, R, A1, A2, A3, A4> func_obj(p, func);
00501             return ReceiversOperations<IFunctorPtr>::
00502                    remove_receiver(&func_obj, receivers);
00503         }


The documentation for this class was generated from the following file:
Generated by  doxygen 1.6.2-20100208